Add verification status checks to protected routes including post creation, updates, deletion, likes, favorites, voting, and WebSocket connections. Also rename RequireVerification middleware to RequireVerified and update error response format with string error codes.
100 lines
2.9 KiB
Go
100 lines
2.9 KiB
Go
package wire
|
|
|
|
import (
|
|
"carrot_bbs/internal/handler"
|
|
"carrot_bbs/internal/pkg/ws"
|
|
"carrot_bbs/internal/repository"
|
|
"carrot_bbs/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
|
|
handler.NewUserHandler,
|
|
handler.NewPostHandler,
|
|
ProvideMessageHandler,
|
|
ProvideSystemMessageHandler,
|
|
ProvideGroupHandler,
|
|
ProvideScheduleHandler,
|
|
ProvideWSHandler,
|
|
ProvideAdminVerificationHandler,
|
|
)
|
|
|
|
// ProvideMessageHandler 提供消息处理器
|
|
func ProvideMessageHandler(
|
|
chatService service.ChatService,
|
|
messageService *service.MessageService,
|
|
userService service.UserService,
|
|
groupService service.GroupService,
|
|
wsHub *ws.Hub,
|
|
) *handler.MessageHandler {
|
|
return handler.NewMessageHandler(chatService, messageService, userService, groupService, wsHub)
|
|
}
|
|
|
|
// 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(
|
|
wsHub *ws.Hub,
|
|
chatService service.ChatService,
|
|
groupService service.GroupService,
|
|
jwtService *service.JWTService,
|
|
callService service.CallService,
|
|
userRepo repository.UserRepository,
|
|
) *handler.WSHandler {
|
|
return handler.NewWSHandler(wsHub, chatService, groupService, jwtService, callService, userRepo)
|
|
}
|
|
|
|
// ProvideAdminVerificationHandler 提供管理端身份认证处理器
|
|
func ProvideAdminVerificationHandler(
|
|
adminVerificationService service.AdminVerificationService,
|
|
userRepo repository.UserRepository,
|
|
) *handler.AdminVerificationHandler {
|
|
return handler.NewAdminVerificationHandler(adminVerificationService, userRepo)
|
|
}
|