added type middleware

This commit is contained in:
Pavel 2024-07-25 14:49:50 +03:00
parent a1ec819de7
commit c3d9e2a0d3
5 changed files with 59 additions and 16 deletions

@ -4,6 +4,7 @@ import (
"context" "context"
"errors" "errors"
"go.uber.org/zap" "go.uber.org/zap"
"hub_admin_backend_service/internal/controller/middleware"
"hub_admin_backend_service/internal/initialize" "hub_admin_backend_service/internal/initialize"
"hub_admin_backend_service/internal/models" "hub_admin_backend_service/internal/models"
"hub_admin_backend_service/internal/server/http" "hub_admin_backend_service/internal/server/http"
@ -30,6 +31,8 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
return err return err
} }
mw := middleware.NewMiddleware(logger)
repositories := initialize.NewRepository(initialize.RepositoryDeps{ repositories := initialize.NewRepository(initialize.RepositoryDeps{
Logger: logger, Logger: logger,
Mdb: mdb, Mdb: mdb,
@ -38,6 +41,7 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
controllers := initialize.NewControllers(initialize.ControllerDeps{ controllers := initialize.NewControllers(initialize.ControllerDeps{
Logger: logger, Logger: logger,
Repos: repositories, Repos: repositories,
MW: mw,
}) })
internalSrv := http.NewServer(http.ServerConfig{ internalSrv := http.NewServer(http.ServerConfig{

@ -0,0 +1,27 @@
package middleware
import (
"github.com/gofiber/fiber/v2"
"go.uber.org/zap"
"hub_admin_backend_service/internal/models"
)
type MiddleWare struct {
logger *zap.Logger
}
func NewMiddleware(logger *zap.Logger) *MiddleWare {
return &MiddleWare{
logger: logger,
}
}
func (mw *MiddleWare) ExtractUserID(ctx *fiber.Ctx) (string, bool) {
id, ok := ctx.Context().UserValue(models.AuthJWTDecodedUserIDKey).(string)
return id, ok
}
func (mw *MiddleWare) ExtractToken(ctx *fiber.Ctx) (string, bool) {
token, ok := ctx.Context().UserValue(models.AuthJWTDecodedAccessTokenKey).(string)
return token, ok
}

@ -5,24 +5,28 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.uber.org/zap" "go.uber.org/zap"
"hub_admin_backend_service/internal/controller/middleware"
our_errors "hub_admin_backend_service/internal/errors" our_errors "hub_admin_backend_service/internal/errors"
"hub_admin_backend_service/internal/repository/tariff" "hub_admin_backend_service/internal/repository/tariff"
) )
type Deps struct { type Deps struct {
Repo *tariff.Tariff Repo *tariff.Tariff
Logger *zap.Logger Logger *zap.Logger
MiddleWare *middleware.MiddleWare
} }
type TariffExternal struct { type TariffExternal struct {
repo *tariff.Tariff repo *tariff.Tariff
logger *zap.Logger logger *zap.Logger
middleWare *middleware.MiddleWare
} }
func NewTariffExternal(deps Deps) *TariffExternal { func NewTariffExternal(deps Deps) *TariffExternal {
return &TariffExternal{ return &TariffExternal{
repo: deps.Repo, repo: deps.Repo,
logger: deps.Logger, logger: deps.Logger,
middleWare: deps.MiddleWare,
} }
} }

@ -5,6 +5,7 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.uber.org/zap" "go.uber.org/zap"
"hub_admin_backend_service/internal/controller/middleware"
our_errors "hub_admin_backend_service/internal/errors" our_errors "hub_admin_backend_service/internal/errors"
"hub_admin_backend_service/internal/models" "hub_admin_backend_service/internal/models"
"hub_admin_backend_service/internal/repository/tariff" "hub_admin_backend_service/internal/repository/tariff"
@ -13,19 +14,22 @@ import (
// todo middleware jwt // todo middleware jwt
type Deps struct { type Deps struct {
Repo *tariff.Tariff Repo *tariff.Tariff
Logger *zap.Logger Logger *zap.Logger
MiddleWare *middleware.MiddleWare
} }
type TariffInternal struct { type TariffInternal struct {
repo *tariff.Tariff repo *tariff.Tariff
logger *zap.Logger logger *zap.Logger
middleWare *middleware.MiddleWare
} }
func NewTariffInternal(deps Deps) *TariffInternal { func NewTariffInternal(deps Deps) *TariffInternal {
return &TariffInternal{ return &TariffInternal{
repo: deps.Repo, repo: deps.Repo,
logger: deps.Logger, logger: deps.Logger,
middleWare: deps.MiddleWare,
} }
} }

@ -2,6 +2,7 @@ package initialize
import ( import (
"go.uber.org/zap" "go.uber.org/zap"
"hub_admin_backend_service/internal/controller/middleware"
"hub_admin_backend_service/internal/controller/privilege_external" "hub_admin_backend_service/internal/controller/privilege_external"
"hub_admin_backend_service/internal/controller/privilege_internal" "hub_admin_backend_service/internal/controller/privilege_internal"
"hub_admin_backend_service/internal/controller/tariff_external" "hub_admin_backend_service/internal/controller/tariff_external"
@ -11,6 +12,7 @@ import (
type ControllerDeps struct { type ControllerDeps struct {
Logger *zap.Logger Logger *zap.Logger
Repos *Repository Repos *Repository
MW *middleware.MiddleWare
} }
type Controller struct { type Controller struct {
@ -31,12 +33,14 @@ func NewControllers(deps ControllerDeps) *Controller {
Logger: deps.Logger, Logger: deps.Logger,
}), }),
TariffInternal: tariff_internal.NewTariffInternal(tariff_internal.Deps{ TariffInternal: tariff_internal.NewTariffInternal(tariff_internal.Deps{
Logger: deps.Logger, Logger: deps.Logger,
Repo: deps.Repos.TariffRepo, Repo: deps.Repos.TariffRepo,
MiddleWare: deps.MW,
}), }),
TariffExternal: tariff_external.NewTariffExternal(tariff_external.Deps{ TariffExternal: tariff_external.NewTariffExternal(tariff_external.Deps{
Logger: deps.Logger, Logger: deps.Logger,
Repo: deps.Repos.TariffRepo, Repo: deps.Repos.TariffRepo,
MiddleWare: deps.MW,
}), }),
} }
} }