fix(prompt): disallow update if prompt is empty (#1816)

This commit is contained in:
Ryo 2025-08-26 16:04:49 +08:00 committed by GitHub
parent 2a704fc873
commit 5ecdddbacb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 13 additions and 17 deletions

View File

@ -199,11 +199,7 @@ func (p *PromptApplicationService) updatePromptResource(ctx context.Context, req
return nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV("msg", "no permission")) return nil, errorx.New(errno.ErrPromptPermissionCode, errorx.KV("msg", "no permission"))
} }
promptResource.Name = req.Prompt.GetName() err = p.DomainSVC.UpdatePromptResource(ctx, promptID, req.Prompt.Name, req.Prompt.Description, req.Prompt.PromptText)
promptResource.Description = req.Prompt.GetDescription()
promptResource.PromptText = req.Prompt.GetPromptText()
err = p.DomainSVC.UpdatePromptResource(ctx, promptResource)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -116,24 +116,24 @@ func (d *PromptDAO) GetPromptResource(ctx context.Context, promptID int64) (*ent
return do, nil return do, nil
} }
func (d *PromptDAO) UpdatePromptResource(ctx context.Context, p *entity.PromptResource) error { func (d *PromptDAO) UpdatePromptResource(ctx context.Context, promptID int64, name, description, promptText *string) error {
updateMap := make(map[string]any, 5) updateMap := make(map[string]any, 5)
if p.Name != "" { if name != nil {
updateMap["name"] = p.Name updateMap["name"] = *name
} }
if p.Description != "" { if description != nil {
updateMap["description"] = p.Description updateMap["description"] = *description
} }
if p.PromptText != "" { if promptText != nil {
updateMap["prompt_text"] = p.PromptText updateMap["prompt_text"] = *promptText
} }
promptModel := query.PromptResource promptModel := query.PromptResource
promptWhere := []gen.Condition{ promptWhere := []gen.Condition{
promptModel.ID.Eq(p.ID), promptModel.ID.Eq(promptID),
} }
_, err := promptModel.WithContext(ctx).Where(promptWhere...).Updates(updateMap) _, err := promptModel.WithContext(ctx).Where(promptWhere...).Updates(updateMap)

View File

@ -33,6 +33,6 @@ func NewPromptRepo(db *gorm.DB, generator idgen.IDGenerator) PromptRepository {
type PromptRepository interface { type PromptRepository interface {
CreatePromptResource(ctx context.Context, do *entity.PromptResource) (int64, error) CreatePromptResource(ctx context.Context, do *entity.PromptResource) (int64, error)
GetPromptResource(ctx context.Context, promptID int64) (*entity.PromptResource, error) GetPromptResource(ctx context.Context, promptID int64) (*entity.PromptResource, error)
UpdatePromptResource(ctx context.Context, p *entity.PromptResource) error UpdatePromptResource(ctx context.Context, promptID int64, name, description, promptText *string) error
DeletePromptResource(ctx context.Context, ID int64) error DeletePromptResource(ctx context.Context, ID int64) error
} }

View File

@ -25,7 +25,7 @@ import (
type Prompt interface { type Prompt interface {
CreatePromptResource(ctx context.Context, p *entity.PromptResource) (int64, error) CreatePromptResource(ctx context.Context, p *entity.PromptResource) (int64, error)
GetPromptResource(ctx context.Context, promptID int64) (*entity.PromptResource, error) GetPromptResource(ctx context.Context, promptID int64) (*entity.PromptResource, error)
UpdatePromptResource(ctx context.Context, p *entity.PromptResource) error UpdatePromptResource(ctx context.Context, promptID int64, name, description, promptText *string) error
DeletePromptResource(ctx context.Context, promptID int64) error DeletePromptResource(ctx context.Context, promptID int64) error
ListOfficialPromptResource(ctx context.Context, keyword string) ([]*entity.PromptResource, error) ListOfficialPromptResource(ctx context.Context, keyword string) ([]*entity.PromptResource, error)

View File

@ -40,8 +40,8 @@ func (s *promptService) CreatePromptResource(ctx context.Context, p *entity.Prom
return s.Repo.CreatePromptResource(ctx, p) return s.Repo.CreatePromptResource(ctx, p)
} }
func (s *promptService) UpdatePromptResource(ctx context.Context, p *entity.PromptResource) error { func (s *promptService) UpdatePromptResource(ctx context.Context, promptID int64, name, description, promptText *string) error {
return s.Repo.UpdatePromptResource(ctx, p) return s.Repo.UpdatePromptResource(ctx, promptID, name, description, promptText)
} }
func (s *promptService) GetPromptResource(ctx context.Context, promptID int64) (*entity.PromptResource, error) { func (s *promptService) GetPromptResource(ctx context.Context, promptID int64) (*entity.PromptResource, error) {