refactor(auth): decouple auth from push via domain events

Introduce internal/listener as a domain event bus so oauth and user
modules emit AdminLoggedIn without depending on admin/push. Register
push handlers explicitly at the router composition root, replacing
init() side-effect registration and blank imports.
This commit is contained in:
ryan
2026-06-18 10:31:11 +08:00
parent f826807cf1
commit 6066eb114b
7 changed files with 73 additions and 17 deletions
+4 -2
View File
@@ -16,12 +16,11 @@ import (
"time"
admin_push "github.com/Rain-kl/Wavelet/internal/apps/admin/push"
"github.com/Rain-kl/Wavelet/internal/apps/admin/push/custom_events"
"github.com/Rain-kl/Wavelet/internal/apps/risk_control"
router_root "github.com/Rain-kl/Wavelet/internal/router/root"
v1 "github.com/Rain-kl/Wavelet/internal/router/v1"
// Swagger 文档生成
_ "github.com/Rain-kl/Wavelet/internal/apps/admin/push/custom_events"
"github.com/Rain-kl/Wavelet/internal/apps/oauth"
"github.com/Rain-kl/Wavelet/internal/config"
otel_trace "github.com/Rain-kl/Wavelet/pkg/trace"
@@ -41,6 +40,9 @@ func Serve() {
// 初始化 ClickHouse 异步日志写入器
risk_control.InitLogWriter()
// 装配推送模块与领域事件的集成(组合根显式注册,避免 init 副作用)
custom_events.Register()
// 运行内置事件同步
if err := admin_push.SyncEvents(context.Background()); err != nil {
log.Printf("[API] sync push events failed: %v\n", err)