heruvym/app/app_account.go
Danil Solovyov 6db70c0c23 Added:
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
2023-05-16 23:21:27 +05:00

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()
}