Skip to content

Commit 3122c69

Browse files
authored
[fix] [backend] remove audit for saveDraft and add audit for commit prompt (#417)
* fix: remove audit for saveDraft and add audit for commit prompt * feat: add ut
1 parent abbfa6e commit 3122c69

2 files changed

Lines changed: 44 additions & 20 deletions

File tree

backend/modules/prompt/application/manage.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -535,12 +535,6 @@ func (app *PromptManageApplicationImpl) SaveDraft(ctx context.Context, request *
535535
savingPromptDTO.PromptDraft.DraftInfo.UserID = ptr.Of(userID)
536536
savingPromptDO := convertor.PromptDTO2DO(savingPromptDTO)
537537

538-
// 审核
539-
err = app.auditRPCProvider.AuditPrompt(ctx, savingPromptDO)
540-
if err != nil {
541-
return r, err
542-
}
543-
544538
// save draft
545539
draftInfoDO, err := app.promptService.SaveDraft(ctx, savingPromptDO)
546540
if err != nil {
@@ -567,7 +561,9 @@ func (app *PromptManageApplicationImpl) CommitDraft(ctx context.Context, request
567561

568562
// prompt
569563
getPromptParam := repo.GetPromptParam{
570-
PromptID: request.GetPromptID(),
564+
PromptID: request.GetPromptID(),
565+
UserID: userID,
566+
WithDraft: true,
571567
}
572568
promptDO, err := app.manageRepo.GetPrompt(ctx, getPromptParam)
573569
if err != nil {
@@ -580,6 +576,12 @@ func (app *PromptManageApplicationImpl) CommitDraft(ctx context.Context, request
580576
return r, err
581577
}
582578

579+
// 审核
580+
err = app.auditRPCProvider.AuditPrompt(ctx, promptDO)
581+
if err != nil {
582+
return r, err
583+
}
584+
583585
// 验证label是否存在(如果有提供label)
584586
var labelKeys []string
585587
if len(request.GetLabelKeys()) > 0 {

backend/modules/prompt/application/manage_test.go

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2479,7 +2479,6 @@ func TestPromptManageApplicationImpl_SaveDraft(t *testing.T) {
24792479
type fields struct {
24802480
manageRepo repo.IManageRepo
24812481
authProvider rpc.IAuthProvider
2482-
auditProvider rpc.IAuditProvider
24832482
promptService service.IPromptService
24842483
}
24852484
type args struct {
@@ -2527,14 +2526,12 @@ func TestPromptManageApplicationImpl_SaveDraft(t *testing.T) {
25272526
repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 3}).Return(&entity.Prompt{ID: 3, SpaceID: 30}, nil)
25282527
auth := mocks.NewMockIAuthProvider(ctrl)
25292528
auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(30), []int64{int64(3)}, consts.ActionLoopPromptEdit).Return(nil)
2530-
audit := mocks.NewMockIAuditProvider(ctrl)
2531-
audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).Return(nil)
25322529
promptSvc := servicemocks.NewMockIPromptService(ctrl)
25332530
promptSvc.EXPECT().SaveDraft(gomock.Any(), gomock.Any()).DoAndReturn(func(_ context.Context, promptDO *entity.Prompt) (*entity.DraftInfo, error) {
25342531
assert.Equal(t, "user", promptDO.PromptDraft.DraftInfo.UserID)
25352532
return &entity.DraftInfo{UserID: "user", IsModified: true}, nil
25362533
})
2537-
return fields{manageRepo: repoMock, authProvider: auth, auditProvider: audit, promptService: promptSvc}
2534+
return fields{manageRepo: repoMock, authProvider: auth, promptService: promptSvc}
25382535
},
25392536
args: args{
25402537
ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}),
@@ -2559,10 +2556,9 @@ func TestPromptManageApplicationImpl_SaveDraft(t *testing.T) {
25592556

25602557
tFields := caseData.fieldsGetter(ctrl)
25612558
app := &PromptManageApplicationImpl{
2562-
manageRepo: tFields.manageRepo,
2563-
authRPCProvider: tFields.authProvider,
2564-
auditRPCProvider: tFields.auditProvider,
2565-
promptService: tFields.promptService,
2559+
manageRepo: tFields.manageRepo,
2560+
authRPCProvider: tFields.authProvider,
2561+
promptService: tFields.promptService,
25662562
}
25672563

25682564
resp, err := app.SaveDraft(caseData.args.ctx, caseData.args.request)
@@ -2582,6 +2578,7 @@ func TestPromptManageApplicationImpl_CommitDraft(t *testing.T) {
25822578
type fields struct {
25832579
manageRepo repo.IManageRepo
25842580
authProvider rpc.IAuthProvider
2581+
auditProvider rpc.IAuditProvider
25852582
promptService service.IPromptService
25862583
}
25872584
type args struct {
@@ -2603,11 +2600,33 @@ func TestPromptManageApplicationImpl_CommitDraft(t *testing.T) {
26032600
},
26042601
wantErr: invalidVersionErr,
26052602
},
2603+
{
2604+
name: "audit error",
2605+
fieldsGetter: func(ctrl *gomock.Controller) fields {
2606+
repoMock := repomocks.NewMockIManageRepo(ctrl)
2607+
repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 4, WithDraft: true, UserID: "user"}).Return(&entity.Prompt{ID: 4, SpaceID: 40}, nil)
2608+
auth := mocks.NewMockIAuthProvider(ctrl)
2609+
auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(40), []int64{int64(4)}, consts.ActionLoopPromptEdit).Return(nil)
2610+
audit := mocks.NewMockIAuditProvider(ctrl)
2611+
audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).Return(errorx.New("audit error"))
2612+
return fields{manageRepo: repoMock, authProvider: auth, auditProvider: audit}
2613+
},
2614+
args: args{
2615+
ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}),
2616+
request: &manage.CommitDraftRequest{
2617+
PromptID: ptr.Of(int64(4)),
2618+
CommitVersion: ptr.Of("1.0.0"),
2619+
CommitDescription: ptr.Of("desc"),
2620+
LabelKeys: []string{"label"},
2621+
},
2622+
},
2623+
wantErr: errorx.New("audit error"),
2624+
},
26062625
{
26072626
name: "success",
26082627
fieldsGetter: func(ctrl *gomock.Controller) fields {
26092628
repoMock := repomocks.NewMockIManageRepo(ctrl)
2610-
repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 4}).Return(&entity.Prompt{ID: 4, SpaceID: 40}, nil)
2629+
repoMock.EXPECT().GetPrompt(gomock.Any(), repo.GetPromptParam{PromptID: 4, WithDraft: true, UserID: "user"}).Return(&entity.Prompt{ID: 4, SpaceID: 40}, nil)
26112630
repoMock.EXPECT().CommitDraft(gomock.Any(), repo.CommitDraftParam{
26122631
PromptID: 4,
26132632
UserID: "user",
@@ -2617,9 +2636,11 @@ func TestPromptManageApplicationImpl_CommitDraft(t *testing.T) {
26172636
}).Return(nil)
26182637
auth := mocks.NewMockIAuthProvider(ctrl)
26192638
auth.EXPECT().MCheckPromptPermission(gomock.Any(), int64(40), []int64{int64(4)}, consts.ActionLoopPromptEdit).Return(nil)
2639+
audit := mocks.NewMockIAuditProvider(ctrl)
2640+
audit.EXPECT().AuditPrompt(gomock.Any(), gomock.Any()).Return(nil)
26202641
promptSvc := servicemocks.NewMockIPromptService(ctrl)
26212642
promptSvc.EXPECT().ValidateLabelsExist(gomock.Any(), int64(40), []string{"label"}).Return(nil)
2622-
return fields{manageRepo: repoMock, authProvider: auth, promptService: promptSvc}
2643+
return fields{manageRepo: repoMock, authProvider: auth, auditProvider: audit, promptService: promptSvc}
26232644
},
26242645
args: args{
26252646
ctx: session.WithCtxUser(context.Background(), &session.User{ID: "user"}),
@@ -2643,9 +2664,10 @@ func TestPromptManageApplicationImpl_CommitDraft(t *testing.T) {
26432664

26442665
tFields := caseData.fieldsGetter(ctrl)
26452666
app := &PromptManageApplicationImpl{
2646-
manageRepo: tFields.manageRepo,
2647-
authRPCProvider: tFields.authProvider,
2648-
promptService: tFields.promptService,
2667+
manageRepo: tFields.manageRepo,
2668+
authRPCProvider: tFields.authProvider,
2669+
auditRPCProvider: tFields.auditProvider,
2670+
promptService: tFields.promptService,
26492671
}
26502672

26512673
resp, err := app.CommitDraft(caseData.args.ctx, caseData.args.request)

0 commit comments

Comments
 (0)