added type external for config

This commit is contained in:
Pasha 2024-11-27 13:17:36 +03:00
parent c6fa06b6cf
commit 4b4e5f6f78
5 changed files with 41 additions and 36 deletions

@ -67,7 +67,7 @@ func Run(config *models.Config, logger *zap.Logger, build Build) (appErr error)
} }
mongoDB, err := mongo.Connect(ctx, &mongo.ConnectDeps{ mongoDB, err := mongo.Connect(ctx, &mongo.ConnectDeps{
Configuration: &config.Database, Configuration: &config.ExternalCfg.Database,
Timeout: 10 * time.Second, Timeout: 10 * time.Second,
}) })
if err != nil { if err != nil {
@ -116,7 +116,7 @@ func Run(config *models.Config, logger *zap.Logger, build Build) (appErr error)
PaymentServiceURL: config.PaymentMicroservice, PaymentServiceURL: config.PaymentMicroservice,
VerificationURL: config.VerificationMicroservice, VerificationURL: config.VerificationMicroservice,
TemplategenURL: config.TemplategenMicroserviceURL, TemplategenURL: config.TemplategenMicroserviceURL,
MailClient: config.MailClientCfg, MailClient: config.ExternalCfg.MailClientCfg,
CodewordServiceHost: config.CodewordMicroservice, CodewordServiceHost: config.CodewordMicroservice,
Notifier: notificationBot, Notifier: notificationBot,
NotificationRsPayChannel: config.NotificationRsPayChannel, NotificationRsPayChannel: config.NotificationRsPayChannel,
@ -144,7 +144,7 @@ func Run(config *models.Config, logger *zap.Logger, build Build) (appErr error)
HLogger: loggerHlog, HLogger: loggerHlog,
}) })
encrypt := &config.EncryptCommon encrypt := &config.ExternalCfg.EncryptCommon
middleWare := http.NewMiddleWare(logger) middleWare := http.NewMiddleWare(logger)
@ -162,14 +162,14 @@ func Run(config *models.Config, logger *zap.Logger, build Build) (appErr error)
Logger: logger, Logger: logger,
Hlog: loggerHlog, Hlog: loggerHlog,
Controllers: []server.Controller{httpControllers.CurrencyClientController, httpControllers.HistoryClientController, httpControllers.CartClientController, httpControllers.WalletClientController, httpControllers.AccountClientController}, Controllers: []server.Controller{httpControllers.CurrencyClientController, httpControllers.HistoryClientController, httpControllers.CartClientController, httpControllers.WalletClientController, httpControllers.AccountClientController},
JWTConfig: &config.JwtCfg, JWTConfig: &config.ExternalCfg.JwtCfg,
}) })
serverAdminHTTP := server.NewServer(server.ServerConfig{ serverAdminHTTP := server.NewServer(server.ServerConfig{
Logger: logger, Logger: logger,
Hlog: loggerHlog, Hlog: loggerHlog,
Controllers: []server.Controller{httpControllers.AccountAdminController, httpControllers.CurrencyAdminController, httpControllers.HistoryAdminController}, Controllers: []server.Controller{httpControllers.AccountAdminController, httpControllers.CurrencyAdminController, httpControllers.HistoryAdminController},
JWTConfig: &config.JwtCfg, JWTConfig: &config.ExternalCfg.JwtCfg,
}) })
serverClientHTTP.ListRoutes() serverClientHTTP.ListRoutes()

@ -20,7 +20,7 @@ func Configuration(path string) (*models.Config, error) {
// return nil, err // return nil, err
//} //}
iniJWTConfiguration(&config.JwtCfg) iniJWTConfiguration(&config.ExternalCfg.JwtCfg)
return config, nil return config, nil
} }

@ -71,21 +71,23 @@ func setDefaultTestingENV(t *testing.T) *models.Config {
PaymentMicroservice: "domen", PaymentMicroservice: "domen",
VerificationMicroservice: "domen", VerificationMicroservice: "domen",
TemplategenMicroserviceURL: "domen", TemplategenMicroserviceURL: "domen",
JwtCfg: models.JWTConfiguration{ ExternalCfg: models.ExternalCfg{
PrivateKey: "jwt private key", JwtCfg: models.JWTConfiguration{
PublicKey: "jwt public key", PrivateKey: "jwt private key",
Issuer: "issuer", PublicKey: "jwt public key",
Audience: "audience", Issuer: "issuer",
Algorithm: *jwt.SigningMethodRS256, Audience: "audience",
ExpiresIn: 15 * time.Minute, Algorithm: *jwt.SigningMethodRS256,
}, ExpiresIn: 15 * time.Minute,
Database: mongo.Configuration{ },
Host: "localhost", Database: mongo.Configuration{
Port: "27017", Host: "localhost",
User: "user", Port: "27017",
Password: "pass", User: "user",
Auth: "db", Password: "pass",
DatabaseName: "db", Auth: "db",
DatabaseName: "db",
},
}, },
} }
@ -93,10 +95,10 @@ func setDefaultTestingENV(t *testing.T) *models.Config {
t.Setenv("GRPC_PORT", defaultConfiguration.GrpcPort) t.Setenv("GRPC_PORT", defaultConfiguration.GrpcPort)
t.Setenv("GRPC_DOMEN", defaultConfiguration.GrpcDomen) t.Setenv("GRPC_DOMEN", defaultConfiguration.GrpcDomen)
t.Setenv("JWT_PUBLIC_KEY", defaultConfiguration.JwtCfg.PublicKey) t.Setenv("JWT_PUBLIC_KEY", defaultConfiguration.ExternalCfg.JwtCfg.PublicKey)
t.Setenv("JWT_PRIVATE_KEY", defaultConfiguration.JwtCfg.PrivateKey) t.Setenv("JWT_PRIVATE_KEY", defaultConfiguration.ExternalCfg.JwtCfg.PrivateKey)
t.Setenv("JWT_ISSUER", defaultConfiguration.JwtCfg.Issuer) t.Setenv("JWT_ISSUER", defaultConfiguration.ExternalCfg.JwtCfg.Issuer)
t.Setenv("JWT_AUDIENCE", defaultConfiguration.JwtCfg.Audience) t.Setenv("JWT_AUDIENCE", defaultConfiguration.ExternalCfg.JwtCfg.Audience)
t.Setenv("KAFKA_BROKERS", "localhost:8080,localhost:8081") t.Setenv("KAFKA_BROKERS", "localhost:8080,localhost:8081")
t.Setenv("KAFKA_TOPIC_TARIFF", defaultConfiguration.KafkaTopic) t.Setenv("KAFKA_TOPIC_TARIFF", defaultConfiguration.KafkaTopic)
@ -109,12 +111,12 @@ func setDefaultTestingENV(t *testing.T) *models.Config {
t.Setenv("VERIFICATION_MICROSERVICE_URL", defaultConfiguration.VerificationMicroservice) t.Setenv("VERIFICATION_MICROSERVICE_URL", defaultConfiguration.VerificationMicroservice)
t.Setenv("TEMPLATEGEN_MICROSERVICE_URL", defaultConfiguration.TemplategenMicroserviceURL) t.Setenv("TEMPLATEGEN_MICROSERVICE_URL", defaultConfiguration.TemplategenMicroserviceURL)
t.Setenv("MONGO_HOST", defaultConfiguration.Database.Host) t.Setenv("MONGO_HOST", defaultConfiguration.ExternalCfg.Database.Host)
t.Setenv("MONGO_PORT", defaultConfiguration.Database.Port) t.Setenv("MONGO_PORT", defaultConfiguration.ExternalCfg.Database.Port)
t.Setenv("MONGO_USER", defaultConfiguration.Database.User) t.Setenv("MONGO_USER", defaultConfiguration.ExternalCfg.Database.User)
t.Setenv("MONGO_PASSWORD", defaultConfiguration.Database.Password) t.Setenv("MONGO_PASSWORD", defaultConfiguration.ExternalCfg.Database.Password)
t.Setenv("MONGO_AUTH", defaultConfiguration.Database.Auth) t.Setenv("MONGO_AUTH", defaultConfiguration.ExternalCfg.Database.Auth)
t.Setenv("MONGO_DB_NAME", defaultConfiguration.Database.DatabaseName) t.Setenv("MONGO_DB_NAME", defaultConfiguration.ExternalCfg.Database.DatabaseName)
return &defaultConfiguration return &defaultConfiguration
} }

@ -32,10 +32,14 @@ type Config struct {
NotificationChannel int64 `env:"NOTIFICATION_CHANNEL"` NotificationChannel int64 `env:"NOTIFICATION_CHANNEL"`
AdminURL string `env:"ADMIN_FRONT_URL"` AdminURL string `env:"ADMIN_FRONT_URL"`
NotificationRsPayChannel int64 `env:"NOTIFICATION_RS_PAY_CHANNEL"` NotificationRsPayChannel int64 `env:"NOTIFICATION_RS_PAY_CHANNEL"`
EncryptCommon encrypt.Encrypt ExternalCfg ExternalCfg
JwtCfg JWTConfiguration }
MailClientCfg MailClientCfg
Database mongo.Configuration type ExternalCfg struct {
EncryptCommon encrypt.Encrypt
JwtCfg JWTConfiguration
MailClientCfg MailClientCfg
Database mongo.Configuration
} }
type MailClientCfg struct { type MailClientCfg struct {

@ -17,7 +17,6 @@ func TestSendMessage(t *testing.T) {
ApiUrl: "https://api.smtp.bz/v1/smtp/send", ApiUrl: "https://api.smtp.bz/v1/smtp/send",
Sender: sender, Sender: sender,
ApiKey: apiKey, ApiKey: apiKey,
Auth: &models.PlainAuth{Username: "kotilion.95@gmail.com", Password: "vWwbCSg4bf0p"},
FiberClient: fiber.AcquireClient(), FiberClient: fiber.AcquireClient(),
MailAddress: "pashamullin2001@gmail.com", MailAddress: "pashamullin2001@gmail.com",
}, zap.NewExample()) }, zap.NewExample())