
app_account.go - сервер аккаунта dal_test.go - тесты для аккаунта fiber_middleware.go - миддлевейры для аккаунта service_account.go - эндпоинты для аккаунта service_account_test.go - тесты для эндпоинтов аккаунта Changes: app.go: добавлено включение сервера аккаунта dal.go: добавлена коллекция account и методы для неё model.go: добавлены модели для аккаунта openapi.yaml: добавлены эндпоинты для account
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
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"
|
|
"heruvym/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()
|
|
}
|