Files
backend/internal/wire/handler.go
lan 2f2bbc646e
All checks were successful
Build Backend / build (push) Successful in 2m18s
Build Backend / build-docker (push) Successful in 1m20s
feat(api): implement exam and grade synchronization modules
Add new functionality for managing and synchronizing academic grades and exam schedules. This includes new models, repositories, services, and HTTP handlers, along with updated gRPC definitions and dependency injection configuration.

Additionally, improve the reliability of unread message count tracking by implementing an atomic Lua script for Redis operations in the conversation cache.
2026-05-12 01:28:18 +08:00

121 lines
3.4 KiB
Go

package wire
import (
"with_you/internal/handler"
"with_you/internal/pkg/ws"
"with_you/internal/repository"
"with_you/internal/service"
"github.com/google/wire"
)
// HandlerSet Handler 层 Provider Set
var HandlerSet = wire.NewSet(
// 直接使用构造函数的 Handler
handler.NewCommentHandler,
handler.NewNotificationHandler,
handler.NewUploadHandler,
handler.NewPushHandler,
handler.NewStickerHandler,
handler.NewVoteHandler,
handler.NewChannelHandler,
handler.NewRoleHandler,
handler.NewAdminUserHandler,
handler.NewAdminPostHandler,
handler.NewAdminCommentHandler,
handler.NewAdminGroupHandler,
handler.NewAdminDashboardHandler,
handler.NewAdminLogHandler,
handler.NewQRCodeHandler,
handler.NewMaterialHandler,
handler.NewCallHandler,
handler.NewReportHandler,
handler.NewAdminReportHandler,
handler.NewVerificationHandler,
handler.NewAdminProfileAuditHandler,
handler.NewPostHandler,
handler.NewTradeHandler,
handler.NewGradeHandler,
handler.NewExamHandler,
// 需要特殊处理的 Handler
ProvideUserHandler,
ProvideMessageHandler,
ProvideSystemMessageHandler,
ProvideGroupHandler,
ProvideScheduleHandler,
ProvideWSHandler,
ProvideAdminVerificationHandler,
ProvideSetupHandler,
)
func ProvideUserHandler(
userService service.UserService,
activityService service.UserActivityService,
logService *service.LogService,
profileAuditService service.UserProfileAuditService,
) *handler.UserHandler {
h := handler.NewUserHandler(userService, activityService, logService)
h.SetProfileAuditService(profileAuditService)
return h
}
func ProvideMessageHandler(
chatService service.ChatService,
messageService *service.MessageService,
userService service.UserService,
groupService service.GroupService,
publisher ws.MessagePublisher,
) *handler.MessageHandler {
return handler.NewMessageHandler(chatService, messageService, userService, groupService, publisher)
}
// ProvideSystemMessageHandler 提供系统消息处理器
func ProvideSystemMessageHandler(
systemMsgService service.SystemMessageService,
) *handler.SystemMessageHandler {
return handler.NewSystemMessageHandler(systemMsgService)
}
// ProvideGroupHandler 提供群组处理器
func ProvideGroupHandler(
groupService service.GroupService,
userService service.UserService,
) *handler.GroupHandler {
return handler.NewGroupHandler(groupService, userService)
}
// ProvideScheduleHandler 提供课表处理器
func ProvideScheduleHandler(
scheduleService service.ScheduleService,
scheduleSyncService service.ScheduleSyncService,
) *handler.ScheduleHandler {
return handler.NewScheduleHandler(scheduleService, scheduleSyncService)
}
// ProvideWSHandler 提供WebSocket处理器
func ProvideWSHandler(
publisher ws.MessagePublisher,
chatService service.ChatService,
groupService service.GroupService,
jwtService *service.JWTService,
callService service.CallService,
userRepo repository.UserRepository,
) *handler.WSHandler {
return handler.NewWSHandler(publisher, chatService, groupService, jwtService, callService, userRepo)
}
// ProvideAdminVerificationHandler 提供管理端身份认证处理器
func ProvideAdminVerificationHandler(
adminVerificationService service.AdminVerificationService,
userRepo repository.UserRepository,
) *handler.AdminVerificationHandler {
return handler.NewAdminVerificationHandler(adminVerificationService, userRepo)
}
func ProvideSetupHandler(
setupService service.SetupService,
) *handler.SetupHandler {
return handler.NewSetupHandler(setupService)
}