verification/internal/server/http.go
Danil Solovyov 77b57819db Version 0.2
Changes:
  - rename project to remote gitlab
  - changes envs in internal\config\config.go
  - added deployments\staging\docker-compose.yaml
  - added Dockerfile
  - added staging.env
2023-07-03 16:40:20 +05:00

55 lines
1.4 KiB
Go

package server
import (
"github.com/gofiber/contrib/fiberzap"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/recover"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/backend/verification/internal/config"
"penahub.gitlab.yandexcloud.net/backend/verification/internal/initialize"
)
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,
})
srv.Use(
recover.New(recover.Config{EnableStackTrace: true}),
fiberzap.New(fiberzap.Config{Logger: logger}),
LocalJwt(),
Jwt(),
)
return &HTTP{fiber: srv, cfg: cfg, logger: logger}
}
// Register - автоматически регистрирует все контроллеры
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 сервер
func (srv *HTTP) Start() error {
return srv.fiber.Listen(srv.cfg.HttpAddress)
}
// Stop - останавливает http сервер
func (srv *HTTP) Stop() error {
return srv.fiber.Shutdown()
}