Igris/internal/api/http/setup.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)
}