80 lines
2.0 KiB
Go
80 lines
2.0 KiB
Go
package router
|
|
|
|
import (
|
|
"time"
|
|
|
|
"verification-platform-backend/internal/middleware"
|
|
"verification-platform-backend/internal/router/agent"
|
|
"verification-platform-backend/internal/router/app"
|
|
"verification-platform-backend/internal/router/developer"
|
|
"verification-platform-backend/internal/router/extension"
|
|
"verification-platform-backend/internal/router/frontend"
|
|
"verification-platform-backend/pkg/response"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func SetupRoutes(r *gin.Engine) {
|
|
r.Use(middleware.Cors())
|
|
r.Use(middleware.Logger())
|
|
|
|
r.GET("/health", func(c *gin.Context) {
|
|
response.Success(c, gin.H{
|
|
"status": "ok",
|
|
"time": time.Now().Format(time.RFC3339),
|
|
})
|
|
})
|
|
|
|
frontend.SetupRoutes(r)
|
|
|
|
api := r.Group("/api/v1")
|
|
{
|
|
devGroup := api.Group("/dev")
|
|
{
|
|
devGroup.Use(middleware.JWT())
|
|
devGroup.Use(middleware.DeveloperAuth())
|
|
developer.SetupRoutes(devGroup)
|
|
developer.SetupRoutesWithoutPackage(devGroup)
|
|
}
|
|
|
|
agentGroup := api.Group("/agent")
|
|
{
|
|
agentGroup.Use(middleware.JWT())
|
|
agentGroup.Use(middleware.AgentAuth())
|
|
agent.SetupAgentRoutes(agentGroup)
|
|
}
|
|
|
|
appGroup := api.Group("/app/:appKey")
|
|
{
|
|
appGroup.Use(app.AppCryptoMiddleware())
|
|
appGroup.Use(app.ResponseEncryption())
|
|
app.SetupInfoRoutes(appGroup)
|
|
}
|
|
|
|
appGroupWithStatusCheck := api.Group("/app/:appKey")
|
|
{
|
|
appGroupWithStatusCheck.Use(middleware.CheckAppStatus())
|
|
appGroupWithStatusCheck.Use(app.AppCryptoMiddleware())
|
|
appGroupWithStatusCheck.Use(app.ResponseEncryption())
|
|
app.SetupRoutes(appGroupWithStatusCheck)
|
|
app.SetupAuthUserRoutes(appGroupWithStatusCheck)
|
|
app.SetupDevicePublicRoutes(appGroupWithStatusCheck)
|
|
}
|
|
|
|
appAuthGroup := api.Group("/app/:appKey")
|
|
{
|
|
appAuthGroup.Use(middleware.JWT())
|
|
appAuthGroup.Use(middleware.CheckAppStatus())
|
|
appAuthGroup.Use(app.AppCryptoMiddleware())
|
|
appAuthGroup.Use(app.ResponseEncryption())
|
|
app.SetupCloudRoutes(appAuthGroup)
|
|
app.SetupAuthRoutes(appAuthGroup)
|
|
}
|
|
|
|
extGroup := api.Group("")
|
|
{
|
|
extension.SetupRoutes(extGroup)
|
|
}
|
|
}
|
|
}
|