45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package router
|
|
|
|
import (
|
|
"ckwk/internal/handler"
|
|
"ckwk/internal/middleware"
|
|
"ckwk/internal/schedule"
|
|
"time"
|
|
|
|
"github.com/gin-contrib/cors"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func SetupRouter() *gin.Engine {
|
|
r := gin.Default()
|
|
r.Use(cors.New(cors.Config{
|
|
AllowOrigins: []string{"*://*", "http://localhost:5173"},
|
|
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "PATCH"},
|
|
AllowHeaders: []string{"*", "X-Session-Id"},
|
|
ExposeHeaders: []string{"Content-Length"},
|
|
AllowCredentials: true,
|
|
MaxAge: 12 * time.Hour,
|
|
}))
|
|
wkHandler := handler.NewWKHandler()
|
|
sessionMiddleware := middleware.SessionMiddleware(wkHandler.Session)
|
|
schedule.StartCron(wkHandler.Session)
|
|
|
|
api := r.Group("/api")
|
|
{
|
|
api.POST("/login", wkHandler.Login)
|
|
v1 := api.Group("/v1")
|
|
{
|
|
v1.GET("/host", wkHandler.Host)
|
|
}
|
|
|
|
v2 := api.Group("/v2", sessionMiddleware)
|
|
{
|
|
v2.POST("/logout", wkHandler.Logout)
|
|
v2.POST("/study", wkHandler.Study)
|
|
v2.POST("/record", wkHandler.AllRecord)
|
|
}
|
|
}
|
|
|
|
return r
|
|
}
|