From 639ee556969827523027ff90d827001b07bab3f6 Mon Sep 17 00:00:00 2001 From: lafay <2021211506@stu.hit.edu.cn> Date: Sat, 21 Mar 2026 02:53:38 +0800 Subject: [PATCH] feat(wire): add moderation and builtin hooks to post service wiring Add wire providers for ModerationHooks and BuiltinHooks, injecting them into PostService via dependency injection. Hooks are passed as blank identifiers to trigger their initialization and registration side effects. --- cmd/server/wire_gen.go | 4 +++- internal/pkg/hook/moderation_hooks.go | 8 ++++++++ internal/wire/service.go | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/server/wire_gen.go b/cmd/server/wire_gen.go index a13770f..8d9c820 100644 --- a/cmd/server/wire_gen.go +++ b/cmd/server/wire_gen.go @@ -47,8 +47,10 @@ func InitializeApp() (*App, error) { postAIService := wire.ProvidePostAIService(openaiClient) transactionManager := wire.ProvideTransactionManager(db) manager := wire.ProvideHookManager() - postService := wire.ProvidePostService(postRepository, systemMessageService, gorseClient, postAIService, cache, transactionManager, manager) commentRepository := repository.NewCommentRepository(db) + moderationHooks := wire.ProvideModerationHooks(manager, postAIService, postRepository, commentRepository, config) + builtinHooks := wire.ProvideBuiltinHooks(manager) + postService := wire.ProvidePostService(postRepository, systemMessageService, gorseClient, postAIService, cache, transactionManager, manager, moderationHooks, builtinHooks) commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, gorseClient, postAIService, cache, manager) operationLogRepository := repository.NewOperationLogRepository(db) loginLogRepository := repository.NewLoginLogRepository(db) diff --git a/internal/pkg/hook/moderation_hooks.go b/internal/pkg/hook/moderation_hooks.go index 06e24a6..26fca59 100644 --- a/internal/pkg/hook/moderation_hooks.go +++ b/internal/pkg/hook/moderation_hooks.go @@ -80,6 +80,10 @@ func (h *PostModerationHook) Execute(ctx *HookContext) error { result.Approved = false result.Error = err result.ReviewedBy = "ai" + zap.L().Error("AI post moderation failed in strict mode, reject post", + zap.String("post_id", data.PostID), + zap.Error(err), + ) return nil } @@ -164,6 +168,10 @@ func (h *CommentModerationHook) Execute(ctx *HookContext) error { result.Approved = false result.Error = err result.ReviewedBy = "ai" + zap.L().Error("AI comment moderation failed in strict mode, reject comment", + zap.String("comment_id", data.CommentID), + zap.Error(err), + ) return nil } diff --git a/internal/wire/service.go b/internal/wire/service.go index a4126f3..084dd6f 100644 --- a/internal/wire/service.go +++ b/internal/wire/service.go @@ -111,6 +111,8 @@ func ProvidePostService( cacheBackend cache.Cache, txManager repository.TransactionManager, hookManager *hook.Manager, + _ *hook.ModerationHooks, + _ *hook.BuiltinHooks, ) service.PostService { return service.NewPostService(postRepo, systemMessageService, gorseClient, postAIService, cacheBackend, txManager, hookManager) }