56 lines
2.4 KiB
Go
56 lines
2.4 KiB
Go
package routes
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"git.beifan.cn/trace-system/backend-go/controllers"
|
|
"git.beifan.cn/trace-system/backend-go/middleware"
|
|
)
|
|
|
|
// SetupRoutes 设置路由
|
|
func SetupRoutes(r *gin.Engine) {
|
|
// 健康检查
|
|
r.GET("/api/health", func(c *gin.Context) {
|
|
c.JSON(200, gin.H{
|
|
"status": "ok",
|
|
"message": "服务器运行正常",
|
|
})
|
|
})
|
|
}
|
|
|
|
// SetupAPIRoutes 设置 API 路由
|
|
func SetupAPIRoutes(r *gin.RouterGroup) {
|
|
// 认证路由
|
|
authController := controllers.NewAuthController()
|
|
authRoutes := r.Group("/auth")
|
|
{
|
|
authRoutes.POST("/login", authController.Login)
|
|
authRoutes.GET("/profile", middleware.JWTAuthMiddleware(), authController.GetProfile)
|
|
authRoutes.PUT("/profile", middleware.JWTAuthMiddleware(), authController.UpdateProfile)
|
|
authRoutes.POST("/change-password", middleware.JWTAuthMiddleware(), authController.ChangePassword)
|
|
}
|
|
|
|
// 序列号路由
|
|
serialsController := controllers.NewSerialsController()
|
|
serialsRoutes := r.Group("/serials")
|
|
{
|
|
serialsRoutes.POST("/generate", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), serialsController.Generate)
|
|
serialsRoutes.POST("/generate-with-prefix", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), serialsController.GenerateWithPrefix)
|
|
serialsRoutes.POST("/:serialNumber/qrcode", middleware.JWTAuthMiddleware(), serialsController.GenerateQRCode)
|
|
serialsRoutes.GET("/:serialNumber/query", serialsController.Query)
|
|
serialsRoutes.GET("/", middleware.JWTAuthMiddleware(), serialsController.FindAll)
|
|
serialsRoutes.PUT("/:serialNumber", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), serialsController.Update)
|
|
serialsRoutes.POST("/:serialNumber/revoke", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), serialsController.Revoke)
|
|
}
|
|
|
|
// 企业管理路由
|
|
companiesController := controllers.NewCompaniesController()
|
|
companiesRoutes := r.Group("/companies")
|
|
{
|
|
companiesRoutes.GET("/", middleware.JWTAuthMiddleware(), companiesController.FindAll)
|
|
companiesRoutes.POST("/", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), companiesController.Create)
|
|
companiesRoutes.PUT("/:companyName", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), companiesController.Update)
|
|
companiesRoutes.DELETE("/:companyName", middleware.JWTAuthMiddleware(), middleware.AdminMiddleware(), companiesController.Delete)
|
|
}
|
|
}
|