42 lines
995 B
Go
42 lines
995 B
Go
package http
|
|
|
|
import (
|
|
"backend/config"
|
|
"backend/docs"
|
|
httpHandlers "backend/internal/api/http/handlers"
|
|
"backend/internal/app"
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/gofiber/adaptor/v2"
|
|
"github.com/gofiber/fiber/v2"
|
|
httpSwagger "github.com/swaggo/http-swagger"
|
|
)
|
|
|
|
func Run(cfg config.Server, app *app.AppContainer) {
|
|
router := fiber.New()
|
|
|
|
api := router.Group("/api")
|
|
|
|
registerPublicRoutes(api, app)
|
|
|
|
docs.SwaggerInfo.Host = ""
|
|
docs.SwaggerInfo.Schemes = []string{}
|
|
docs.SwaggerInfo.BasePath = "/api"
|
|
|
|
router.Get("/swagger/*", adaptor.HTTPHandler(httpSwagger.Handler()))
|
|
|
|
log.Fatal(router.Listen(fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)))
|
|
}
|
|
|
|
func registerPublicRoutes(router fiber.Router, app *app.AppContainer) {
|
|
authgroup := router.Group("/auth")
|
|
|
|
authService := app.AuthService()
|
|
authHandler := httpHandlers.NewAuthHandler(&authService)
|
|
|
|
// Register auth routes
|
|
authgroup.Post("/challenge", authHandler.GenerateChallenge)
|
|
authgroup.Post("/authenticate", authHandler.Authenticate)
|
|
}
|