heruvym/app/app_account.go

53 lines
1.3 KiB
Go
Raw Normal View History

package app
import (
"github.com/gofiber/contrib/fiberzap"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/recover"
"go.uber.org/zap"
"heruvym/dal/mongo"
2024-09-25 14:22:57 +00:00
"heruvym/internal/utils/middleware"
"heruvym/service"
)
type AccountHTTP struct {
fiber *fiber.App
}
func NewAccountHTTP(dal *mongo.DAL, logger *zap.Logger) *AccountHTTP {
srv := fiber.New(fiber.Config{
AppName: "Heryvum Account",
ErrorHandler: fiber.DefaultErrorHandler,
})
srv.Use(
recover.New(recover.Config{EnableStackTrace: true}),
fiberzap.New(fiberzap.Config{Logger: logger}),
middleware.Jwt,
cors.New(cors.ConfigDefault),
)
return &AccountHTTP{fiber: srv}
}
// StartTLS - запускает http сервер
func (srv *AccountHTTP) StartTLS(address, certFile, keyFile string) error {
return srv.fiber.ListenTLS(address, certFile, keyFile)
}
func (srv *AccountHTTP) Start(address string) error {
return srv.fiber.Listen(address)
}
func (srv *AccountHTTP) Register(routes ...service.Route) {
for _, route := range routes {
srv.fiber.Add(route.Method, route.Path, route.Handler).Name(route.Name)
}
}
// Stop - останавливает http сервер
func (srv *AccountHTTP) Stop() error {
return srv.fiber.Shutdown()
}