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.
This commit is contained in:
@@ -40,6 +40,8 @@ func ProvideRouter(
|
||||
voteHandler *handler.VoteHandler,
|
||||
channelHandler *handler.ChannelHandler,
|
||||
scheduleHandler *handler.ScheduleHandler,
|
||||
gradeHandler *handler.GradeHandler,
|
||||
examHandler *handler.ExamHandler,
|
||||
roleHandler *handler.RoleHandler,
|
||||
adminUserHandler *handler.AdminUserHandler,
|
||||
adminPostHandler *handler.AdminPostHandler,
|
||||
@@ -78,6 +80,8 @@ func ProvideRouter(
|
||||
VoteHandler: voteHandler,
|
||||
ChannelHandler: channelHandler,
|
||||
ScheduleHandler: scheduleHandler,
|
||||
GradeHandler: gradeHandler,
|
||||
ExamHandler: examHandler,
|
||||
RoleHandler: roleHandler,
|
||||
AdminUserHandler: adminUserHandler,
|
||||
AdminPostHandler: adminPostHandler,
|
||||
|
||||
@@ -105,6 +105,12 @@ func InitializeApp() (*App, error) {
|
||||
taskManager := wire.ProvideTaskManager(runnerHub, logger)
|
||||
scheduleSyncService := wire.ProvideScheduleSyncService(taskManager, scheduleRepository, logger)
|
||||
scheduleHandler := wire.ProvideScheduleHandler(scheduleService, scheduleSyncService)
|
||||
gradeRepository := repository.NewGradeRepository(db)
|
||||
gradeSyncService := wire.ProvideGradeSyncService(taskManager, gradeRepository, logger)
|
||||
gradeHandler := handler.NewGradeHandler(gradeSyncService, gradeRepository)
|
||||
examRepository := repository.NewExamRepository(db)
|
||||
examSyncService := wire.ProvideExamSyncService(taskManager, examRepository, logger)
|
||||
examHandler := handler.NewExamHandler(examSyncService, examRepository)
|
||||
roleRepository := wire.ProvideRoleRepository(db)
|
||||
enforcer := wire.ProvideCasbinEnforcer(config, db)
|
||||
casbinService := wire.ProvideCasbinService(enforcer, cache, roleRepository, config)
|
||||
@@ -147,7 +153,7 @@ func InitializeApp() (*App, error) {
|
||||
tradeService := wire.ProvideTradeService(tradeRepository)
|
||||
tradeHandler := handler.NewTradeHandler(tradeService)
|
||||
wsHandler := wire.ProvideWSHandler(messagePublisher, chatService, groupService, jwtService, callService, userRepository)
|
||||
router := ProvideRouter(userRepository, userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, voteHandler, channelHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, materialHandler, callHandler, reportHandler, adminReportHandler, verificationHandler, adminVerificationHandler, adminProfileAuditHandler, setupHandler, tradeHandler, logService, userActivityService, casbinService, wsHandler)
|
||||
router := ProvideRouter(userRepository, userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, voteHandler, channelHandler, scheduleHandler, gradeHandler, examHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, materialHandler, callHandler, reportHandler, adminReportHandler, verificationHandler, adminVerificationHandler, adminProfileAuditHandler, setupHandler, tradeHandler, logService, userActivityService, casbinService, wsHandler)
|
||||
hotRankWorker := wire.ProvideHotRankWorker(config, postRepository, channelRepository, cache, client)
|
||||
server := wire.ProvideGRPCServer(config, logger, runnerHub)
|
||||
runnerRegistry := wire.ProvideRunnerRegistry(config, client)
|
||||
@@ -175,6 +181,8 @@ func ProvideRouter(
|
||||
voteHandler *handler.VoteHandler,
|
||||
channelHandler *handler.ChannelHandler,
|
||||
scheduleHandler *handler.ScheduleHandler,
|
||||
gradeHandler *handler.GradeHandler,
|
||||
examHandler *handler.ExamHandler,
|
||||
roleHandler *handler.RoleHandler,
|
||||
adminUserHandler *handler.AdminUserHandler,
|
||||
adminPostHandler *handler.AdminPostHandler,
|
||||
@@ -213,6 +221,8 @@ func ProvideRouter(
|
||||
VoteHandler: voteHandler,
|
||||
ChannelHandler: channelHandler,
|
||||
ScheduleHandler: scheduleHandler,
|
||||
GradeHandler: gradeHandler,
|
||||
ExamHandler: examHandler,
|
||||
RoleHandler: roleHandler,
|
||||
AdminUserHandler: adminUserHandler,
|
||||
AdminPostHandler: adminPostHandler,
|
||||
|
||||
Reference in New Issue
Block a user