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

main
Ryo 2 months ago committed by GitHub
parent 2a704fc873
commit 5ecdddbacb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 6
      backend/application/prompt/prompt.go
  2. 16
      backend/domain/prompt/internal/dal/prompt_resource.go
  3. 2
      backend/domain/prompt/repository/repository.go
  4. 2
      backend/domain/prompt/service/prompt.go
  5. 4
      backend/domain/prompt/service/prompt_impl.go

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

@ -116,24 +116,24 @@ func (d *PromptDAO) GetPromptResource(ctx context.Context, promptID int64) (*ent
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)
if p.Name != "" {
updateMap["name"] = p.Name
if name != nil {
updateMap["name"] = *name
}
if p.Description != "" {
updateMap["description"] = p.Description
if description != nil {
updateMap["description"] = *description
}
if p.PromptText != "" {
updateMap["prompt_text"] = p.PromptText
if promptText != nil {
updateMap["prompt_text"] = *promptText
}
promptModel := query.PromptResource
promptWhere := []gen.Condition{
promptModel.ID.Eq(p.ID),
promptModel.ID.Eq(promptID),
}
_, err := promptModel.WithContext(ctx).Where(promptWhere...).Updates(updateMap)

@ -33,6 +33,6 @@ func NewPromptRepo(db *gorm.DB, generator idgen.IDGenerator) PromptRepository {
type PromptRepository interface {
CreatePromptResource(ctx context.Context, do *entity.PromptResource) (int64, 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
}

@ -25,7 +25,7 @@ import (
type Prompt interface {
CreatePromptResource(ctx context.Context, p *entity.PromptResource) (int64, 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
ListOfficialPromptResource(ctx context.Context, keyword string) ([]*entity.PromptResource, error)

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

Loading…
Cancel
Save