diff --git a/backend/domain/proxy.go b/backend/domain/proxy.go index 2b0bdbb..e13dfc0 100644 --- a/backend/domain/proxy.go +++ b/backend/domain/proxy.go @@ -28,6 +28,7 @@ type ProxyUsecase interface { type ProxyRepo interface { Record(ctx context.Context, record *RecordParam) error UpdateByTaskID(ctx context.Context, taskID string, fn func(*db.TaskUpdateOne)) error + AcceptCompletion(ctx context.Context, req *AcceptCompletionReq) error SelectModelWithLoadBalancing(modelName string, modelType consts.ModelType) (*db.Model, error) ValidateApiKey(ctx context.Context, key string) (*db.ApiKey, error) } diff --git a/backend/internal/proxy/repo/proxy.go b/backend/internal/proxy/repo/proxy.go index 4b90d14..2a560fc 100644 --- a/backend/internal/proxy/repo/proxy.go +++ b/backend/internal/proxy/repo/proxy.go @@ -133,3 +133,23 @@ func (r *ProxyRepo) UpdateByTaskID(ctx context.Context, taskID string, fn func(* return up.Exec(ctx) }) } + +func (r *ProxyRepo) AcceptCompletion(ctx context.Context, req *domain.AcceptCompletionReq) error { + return entx.WithTx(ctx, r.db, func(tx *db.Tx) error { + rc, err := tx.Task.Query().Where(task.TaskID(req.ID)).Only(ctx) + if err != nil { + return err + } + + if err := tx.Task.UpdateOneID(rc.ID). + SetIsAccept(true). + SetCompletion(req.Completion). + Exec(ctx); err != nil { + return err + } + + return tx.TaskRecord.Update(). + Where(taskrecord.TaskID(rc.ID)). + SetCompletion(req.Completion).Exec(ctx) + }) +} diff --git a/backend/internal/proxy/usecase/proxy.go b/backend/internal/proxy/usecase/proxy.go index 22020e5..2a39f54 100644 --- a/backend/internal/proxy/usecase/proxy.go +++ b/backend/internal/proxy/usecase/proxy.go @@ -6,7 +6,6 @@ import ( "github.com/chaitin/MonkeyCode/backend/pkg/cvt" "github.com/chaitin/MonkeyCode/backend/consts" - "github.com/chaitin/MonkeyCode/backend/db" "github.com/chaitin/MonkeyCode/backend/domain" ) @@ -40,8 +39,5 @@ func (p *ProxyUsecase) ValidateApiKey(ctx context.Context, key string) (*domain. } func (p *ProxyUsecase) AcceptCompletion(ctx context.Context, req *domain.AcceptCompletionReq) error { - return p.repo.UpdateByTaskID(ctx, req.ID, func(ruo *db.TaskUpdateOne) { - ruo.SetIsAccept(true) - ruo.SetCompletion(req.Completion) - }) + return p.repo.AcceptCompletion(ctx, req) }