36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
package router
|
|
|
|
import (
|
|
"git.0x7f.app/WOJ/woj-server/internal/api/debug"
|
|
"git.0x7f.app/WOJ/woj-server/internal/api/oauth"
|
|
"git.0x7f.app/WOJ/woj-server/internal/api/problem"
|
|
"git.0x7f.app/WOJ/woj-server/internal/api/status"
|
|
"git.0x7f.app/WOJ/woj-server/internal/api/submission"
|
|
"git.0x7f.app/WOJ/woj-server/internal/api/user"
|
|
"git.0x7f.app/WOJ/woj-server/internal/model"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/samber/do"
|
|
)
|
|
|
|
// @title WOJ Server API Documentation
|
|
// @version 1.2.0
|
|
// @BasePath /api
|
|
// @securityDefinitions.apikey Authentication
|
|
// @in header
|
|
// @name Authorization
|
|
func (s *service) setupApi(root *gin.RouterGroup, injector *do.Injector) {
|
|
for _, v := range endpoints {
|
|
group := root.Group(v.Version).Group(v.Path)
|
|
v.Register(group, injector)
|
|
}
|
|
}
|
|
|
|
var endpoints = []model.EndpointInfo{
|
|
{Version: "", Path: "/debug", Register: debug.RouteRegister},
|
|
{Version: "/v1", Path: "/user", Register: user.RouteRegister},
|
|
{Version: "/v1", Path: "/problem", Register: problem.RouteRegister},
|
|
{Version: "/v1", Path: "/submission", Register: submission.RouteRegister},
|
|
{Version: "/v1", Path: "/status", Register: status.RouteRegister},
|
|
{Version: "/v1", Path: "/oauth", Register: oauth.RouteRegister},
|
|
}
|