init
This commit is contained in:
70
internal/routes/routes.go
Normal file
70
internal/routes/routes.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"exam_registration/internal/handler"
|
||||
"exam_registration/internal/middleware"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func SetupRouter(r *gin.Engine) {
|
||||
userHandler := handler.NewUserHandler()
|
||||
examHandler := handler.NewExamHandler()
|
||||
registrationHandler := handler.NewRegistrationHandler()
|
||||
noticeHandler := handler.NewNoticeHandler()
|
||||
scoreHandler := handler.NewScoreHandler()
|
||||
|
||||
// 公开路由
|
||||
public := r.Group("/api")
|
||||
{
|
||||
// 用户认证
|
||||
public.POST("/login", userHandler.Login)
|
||||
public.POST("/register", userHandler.Register)
|
||||
|
||||
// 考试列表(公开查询)
|
||||
public.GET("/exams", examHandler.GetExamList)
|
||||
public.GET("/exams/:id", examHandler.GetExamByID)
|
||||
|
||||
// 通知列表(公开查询)
|
||||
public.GET("/notices", noticeHandler.GetNoticeList)
|
||||
public.GET("/notices/:id", noticeHandler.GetNoticeByID)
|
||||
}
|
||||
|
||||
// 需要认证的路由
|
||||
protected := r.Group("/api")
|
||||
protected.Use(middleware.JWT())
|
||||
{
|
||||
// 用户相关
|
||||
protected.GET("/user/info", userHandler.GetUserInfo)
|
||||
protected.PUT("/user/info", userHandler.UpdateUserInfo)
|
||||
|
||||
// 考试管理(管理员)
|
||||
admin := protected.Group("")
|
||||
{
|
||||
admin.POST("/exams", examHandler.CreateExam)
|
||||
admin.PUT("/exams/:id", examHandler.UpdateExam)
|
||||
admin.DELETE("/exams/:id", examHandler.DeleteExam)
|
||||
}
|
||||
|
||||
// 报名管理
|
||||
protected.POST("/registrations", registrationHandler.CreateRegistration)
|
||||
protected.GET("/registrations", registrationHandler.GetRegistrationList)
|
||||
protected.PUT("/registrations/:id", registrationHandler.UpdateRegistration)
|
||||
protected.DELETE("/registrations/:id", registrationHandler.DeleteRegistration)
|
||||
|
||||
// 报名审核(管理员)
|
||||
protected.PUT("/registrations/:id/audit", registrationHandler.AuditRegistration)
|
||||
|
||||
// 通知管理(管理员)
|
||||
protected.POST("/notices", noticeHandler.CreateNotice)
|
||||
protected.PUT("/notices/:id", noticeHandler.UpdateNotice)
|
||||
protected.DELETE("/notices/:id", noticeHandler.DeleteNotice)
|
||||
|
||||
// 成绩管理
|
||||
protected.POST("/scores", scoreHandler.CreateScore)
|
||||
protected.POST("/scores/batch", scoreHandler.BatchCreateScores)
|
||||
protected.GET("/scores/exam/:exam_id", scoreHandler.GetScoreByUserAndExam)
|
||||
protected.GET("/scores", scoreHandler.GetScoreList)
|
||||
protected.PUT("/scores/:id/publish", scoreHandler.PublishScore)
|
||||
protected.DELETE("/scores/:id", scoreHandler.DeleteScore)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user