verification/internal/server/http.go

52 lines
1.3 KiB
Go
Raw Normal View History

2023-06-12 14:19:10 +00:00
package server
import (
"github.com/gofiber/fiber/v2"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/backend/verification/internal/config"
"penahub.gitlab.yandexcloud.net/backend/verification/internal/initialize"
2023-06-12 14:19:10 +00:00
)
type HTTP struct {
fiber *fiber.App
cfg *config.Config
logger *zap.Logger
}
func NewHTTP(cfg *config.Config, logger *zap.Logger) *HTTP {
srv := fiber.New(fiber.Config{
AppName: "Verification",
ErrorHandler: fiber.DefaultErrorHandler,
BodyLimit: 50 << 20,
})
2024-02-09 16:38:56 +00:00
//srv.Use(
// recover.New(recover.Config{EnableStackTrace: true}),
// fiberzap.New(fiberzap.Config{Logger: logger}),
// LocalJwt(),
// Jwt(),
//)
2023-06-12 14:19:10 +00:00
return &HTTP{fiber: srv, cfg: cfg, logger: logger}
}
// Register - автоматически регистрирует все контроллеры.
2023-06-12 14:19:10 +00:00
func (srv *HTTP) Register(controllers ...initialize.Controller) *HTTP {
for _, controller := range controllers {
for _, route := range controller.GetRoutes() {
srv.fiber.Add(route.Method, route.Path, route.Handler).Name(route.Name)
}
}
return srv
}
// Start - запускает http сервер.
2023-06-12 14:19:10 +00:00
func (srv *HTTP) Start() error {
return srv.fiber.Listen(srv.cfg.HttpAddress)
}
// Stop - останавливает http сервер.
2023-06-12 14:19:10 +00:00
func (srv *HTTP) Stop() error {
return srv.fiber.Shutdown()
}