From be6a01d2c7345352289863e880c16d1d7bfff86c Mon Sep 17 00:00:00 2001 From: pasha1coil Date: Wed, 30 Jul 2025 11:53:58 +0300 Subject: [PATCH] added interface IAuthClient --- internal/app/app.go | 8 +++++++- internal/clients/auth/auth.go | 10 ++++++++++ .../controllers/http_controllers/account/account.go | 4 ++-- internal/initialize/clients.go | 11 +++++++++-- internal/initialize/config.go | 1 + 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/internal/app/app.go b/internal/app/app.go index ed4f786..a944253 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -70,11 +70,17 @@ func Run(ctx context.Context, cfg initialize.Config, build Build) error { if err != nil { panic(err) } - + loggerForHlog := zapLogger.WithOptions(zap.WrapCore(func(core zapcore.Core) zapcore.Core { return zapcore.NewTee(core, clickHouseLogger) })) + if cfg.IsTest { + loggerForHlog = zapLogger.WithOptions(zap.WrapCore(func(core zapcore.Core) zapcore.Core { + return zapcore.NewTee(core) + })) + } + loggerHlog := hlog.New(loggerForHlog).Module(initialize.ModuleLogger) loggerHlog.With(models.AllFields{}) loggerHlog.Emit(InfoSvcStarted{}) diff --git a/internal/clients/auth/auth.go b/internal/clients/auth/auth.go index eae63c4..a80b8ec 100644 --- a/internal/clients/auth/auth.go +++ b/internal/clients/auth/auth.go @@ -6,6 +6,10 @@ import ( "log" ) +type IAuthClient interface { + GetUserEmail(userID string) (string, error) +} + type AuthClient struct { URL string } @@ -42,3 +46,9 @@ func (client *AuthClient) GetUserEmail(userID string) (string, error) { return user.Email, nil } + +type MockAuthClient struct{} + +func (m *MockAuthClient) GetUserEmail(userID string) (string, error) { + return "test@example.com", nil +} diff --git a/internal/controllers/http_controllers/account/account.go b/internal/controllers/http_controllers/account/account.go index 6ca1b07..60b8ed2 100644 --- a/internal/controllers/http_controllers/account/account.go +++ b/internal/controllers/http_controllers/account/account.go @@ -21,7 +21,7 @@ import ( type Deps struct { Dal *dal.DAL - AuthClient *auth.AuthClient + AuthClient auth.IAuthClient Producer *brokers.Producer ServiceName string RedisClient *redis.Client @@ -29,7 +29,7 @@ type Deps struct { type Account struct { dal *dal.DAL - authClient *auth.AuthClient + authClient auth.IAuthClient producer *brokers.Producer serviceName string redisClient *redis.Client diff --git a/internal/initialize/clients.go b/internal/initialize/clients.go index 3450bd3..51e0702 100644 --- a/internal/initialize/clients.go +++ b/internal/initialize/clients.go @@ -7,7 +7,7 @@ import ( ) type Clients struct { - AuthClient *auth.AuthClient + AuthClient auth.IAuthClient //TgClient *telegram.TelegramClient } @@ -17,8 +17,15 @@ func NewClients(ctx context.Context, cfg Config, pgDAL *dal.DAL) (*Clients, erro // return nil, err //} + var authClient auth.IAuthClient + if cfg.IsTest { + authClient = &auth.MockAuthClient{} + } else { + authClient = auth.NewAuthClient(cfg.AuthMicroserviceURL) + } + return &Clients{ //TgClient: tgClient, - AuthClient: auth.NewAuthClient(cfg.AuthMicroserviceURL), + AuthClient: authClient, }, nil } diff --git a/internal/initialize/config.go b/internal/initialize/config.go index bb006e9..8900c89 100644 --- a/internal/initialize/config.go +++ b/internal/initialize/config.go @@ -9,6 +9,7 @@ import ( type Config struct { LoggerProdMode bool `env:"IS_PROD_LOG" envDefault:"false"` IsProd bool `env:"IS_PROD" envDefault:"false"` + IsTest bool `env:"IS_TEST" envDefault:"false"` ClientHttpURL string `env:"CLIENT_HTTP_URL" envDefault:"0.0.0.0:1488"` GrpcURL string `env:"GRPC_URL" envDefault:"localhost:9000"` PostgresURL string `env:"POSTGRES_URL" envDefault:"host=localhost port=35432 user=squiz password=Redalert2 dbname=squiz sslmode=disable"`