feat(schedule): add course table screens and navigation
Add complete schedule functionality including: - Schedule screen with weekly course table view - Course detail screen with transparent modal presentation - New ScheduleStack navigator integrated into main tab bar - Schedule service for API interactions - Type definitions for course entities Also includes bug fixes for group invite/request handlers to include required groupId parameter.
This commit is contained in:
@@ -23,6 +23,7 @@ type Router struct {
|
||||
stickerHandler *handler.StickerHandler
|
||||
gorseHandler *handler.GorseHandler
|
||||
voteHandler *handler.VoteHandler
|
||||
scheduleHandler *handler.ScheduleHandler
|
||||
jwtService *service.JWTService
|
||||
}
|
||||
|
||||
@@ -41,6 +42,7 @@ func New(
|
||||
stickerHandler *handler.StickerHandler,
|
||||
gorseHandler *handler.GorseHandler,
|
||||
voteHandler *handler.VoteHandler,
|
||||
scheduleHandler *handler.ScheduleHandler,
|
||||
) *Router {
|
||||
// 设置JWT服务
|
||||
userHandler.SetJWTService(jwtService)
|
||||
@@ -59,6 +61,7 @@ func New(
|
||||
stickerHandler: stickerHandler,
|
||||
gorseHandler: gorseHandler,
|
||||
voteHandler: voteHandler,
|
||||
scheduleHandler: scheduleHandler,
|
||||
jwtService: jwtService,
|
||||
}
|
||||
|
||||
@@ -160,6 +163,18 @@ func (r *Router) setupRoutes() {
|
||||
posts.DELETE("/:id/vote", authMiddleware, r.voteHandler.Unvote) // 取消投票
|
||||
}
|
||||
|
||||
// 课表路由
|
||||
if r.scheduleHandler != nil {
|
||||
schedule := v1.Group("/schedule")
|
||||
schedule.Use(authMiddleware)
|
||||
{
|
||||
schedule.GET("/courses", r.scheduleHandler.ListCourses)
|
||||
schedule.POST("/courses", r.scheduleHandler.CreateCourse)
|
||||
schedule.PUT("/courses/:id", r.scheduleHandler.UpdateCourse)
|
||||
schedule.DELETE("/courses/:id", r.scheduleHandler.DeleteCourse)
|
||||
}
|
||||
}
|
||||
|
||||
// 投票选项路由
|
||||
voteOptions := v1.Group("/vote-options")
|
||||
voteOptions.Use(authMiddleware)
|
||||
|
||||
Reference in New Issue
Block a user