diff --git a/cmd/validator/main.go b/cmd/validator/main.go index 510af9b..df21e2e 100644 --- a/cmd/validator/main.go +++ b/cmd/validator/main.go @@ -3,16 +3,12 @@ package main import ( "context" "fmt" - "gitea.pena/PenaSide/common/encrypt" - "gitea.pena/PenaSide/common/mongo" "gitea.pena/PenaSide/common/validate" "gitea.pena/PenaSide/customer/internal/models" + "github.com/caarlos0/env/v8" "github.com/gofiber/fiber/v2" "github.com/twmb/franz-go/pkg/kgo" "log" - "os" - "strconv" - "strings" "time" ) @@ -69,60 +65,57 @@ func main() { // 38 fields func loadConfig() (*models.Config, error) { - config := models.Config{ - ExternalCfg: models.ExternalCfg{ - JwtCfg: models.JWTConfiguration{ - PublicKey: os.Getenv("JWT_PUBLIC_KEY"), - Audience: os.Getenv("JWT_AUDIENCE"), - Issuer: os.Getenv("JWT_ISSUER"), - }, - Database: mongo.Configuration{ - URL: os.Getenv("MONGO_URL"), - DatabaseName: os.Getenv("MONGO_DB_NAME"), - }, - MailClientCfg: models.MailClientCfg{ - ApiURL: os.Getenv("API_URL"), - Sender: os.Getenv("MAIL_SENDER"), - ApiKey: os.Getenv("MAIL_API_KEY"), - MailAddress: os.Getenv("MAIL_ADDRESS"), - }, - EncryptCommon: encrypt.Encrypt{ - PrivKey: os.Getenv("ENCRYPT_PRIVATE_KEY"), - PubKey: os.Getenv("ENCRYPT_PUBLIC_KEY"), - }, - }, - ClientHttpURL: os.Getenv("CLIENT_HTTP_URL"), - AdminHttpURL: os.Getenv("ADMIN_HTTP_URL"), - GrpcURL: os.Getenv("GRPC_URL"), - GrpcDomain: os.Getenv("GRPC_DOMAIN"), - KafkaBrokers: strings.Split(os.Getenv("KAFKA_BROKERS"), ","), - KafkaTopicTariff: os.Getenv("KAFKA_TOPIC_TARIFF"), - AuthMicroserviceURL: os.Getenv("AUTH_MICROSERVICE_URL"), - HubadminMicroserviceURL: os.Getenv("HUBADMIN_MICROSERVICE_URL"), - CurrencyMicroserviceURL: os.Getenv("CURRENCY_MICROSERVICE_URL"), - DiscountMicroserviceGRPC: os.Getenv("DISCOUNT_MICROSERVICE_GRPC_URL"), - PaymentMicroserviceGRPC: os.Getenv("PAYMENT_MICROSERVICE_GRPC_URL"), - VerificationMicroservice: os.Getenv("VERIFICATION_MICROSERVICE_URL"), - TemplategenMicroserviceURL: os.Getenv("TEMPLATEGEN_MICROSERVICE_URL"), - CodewordMicroserviceGRPC: os.Getenv("CODEWORD_MICROSERVICE_GRPC_URL"), - TrashLogHost: os.Getenv("TRASH_LOG_HOST"), - NotificationBotToken: os.Getenv("TELEGRAM_TOKEN"), - NotificationRsPayChannel: envToInt64(os.Getenv("TELEGRAM_RS_PAY_CHANNEL_ID")), - NotificationChannel: envToInt64(os.Getenv("TELEGRAM_NOTIFICATION_CHANNEL_ID")), - AdminURL: os.Getenv("ADMIN_FRONT_URL"), + //config := models.Config{ + // ExternalCfg: models.ExternalCfg{ + // JwtCfg: models.JWTConfiguration{ + // PublicKey: os.Getenv("JWT_PUBLIC_KEY"), + // Audience: os.Getenv("JWT_AUDIENCE"), + // Issuer: os.Getenv("JWT_ISSUER"), + // }, + // Database: mongo.Configuration{ + // URL: os.Getenv("MONGO_URL"), + // DatabaseName: os.Getenv("MONGO_DB_NAME"), + // }, + // MailClientCfg: models.MailClientCfg{ + // ApiURL: os.Getenv("API_URL"), + // Sender: os.Getenv("MAIL_SENDER"), + // ApiKey: os.Getenv("MAIL_API_KEY"), + // MailAddress: os.Getenv("MAIL_ADDRESS"), + // }, + // EncryptCommon: encrypt.Encrypt{ + // PrivKey: os.Getenv("ENCRYPT_PRIVATE_KEY"), + // PubKey: os.Getenv("ENCRYPT_PUBLIC_KEY"), + // }, + // }, + // ClientHttpURL: os.Getenv("CLIENT_HTTP_URL"), + // AdminHttpURL: os.Getenv("ADMIN_HTTP_URL"), + // GrpcURL: os.Getenv("GRPC_URL"), + // GrpcDomain: os.Getenv("GRPC_DOMAIN"), + // KafkaBrokers: strings.Split(os.Getenv("KAFKA_BROKERS"), ","), + // KafkaTopicTariff: os.Getenv("KAFKA_TOPIC_TARIFF"), + // AuthMicroserviceURL: os.Getenv("AUTH_MICROSERVICE_URL"), + // HubadminMicroserviceURL: os.Getenv("HUBADMIN_MICROSERVICE_URL"), + // CurrencyMicroserviceURL: os.Getenv("CURRENCY_MICROSERVICE_URL"), + // DiscountMicroserviceGRPC: os.Getenv("DISCOUNT_MICROSERVICE_GRPC_URL"), + // PaymentMicroserviceGRPC: os.Getenv("PAYMENT_MICROSERVICE_GRPC_URL"), + // VerificationMicroservice: os.Getenv("VERIFICATION_MICROSERVICE_URL"), + // TemplategenMicroserviceURL: os.Getenv("TEMPLATEGEN_MICROSERVICE_URL"), + // CodewordMicroserviceGRPC: os.Getenv("CODEWORD_MICROSERVICE_GRPC_URL"), + // TrashLogHost: os.Getenv("TRASH_LOG_HOST"), + // NotificationBotToken: os.Getenv("TELEGRAM_TOKEN"), + // NotificationRsPayChannel: envToInt64(os.Getenv("TELEGRAM_RS_PAY_CHANNEL_ID")), + // NotificationChannel: envToInt64(os.Getenv("TELEGRAM_NOTIFICATION_CHANNEL_ID")), + // AdminURL: os.Getenv("ADMIN_FRONT_URL"), + //} + var config models.Config + + if err := env.Parse(&config); err != nil { + log.Fatalf("failed to parse environment variables: %v", err) } return &config, nil } -func envToInt64(str string) int64 { - n, err := strconv.ParseInt(str, 10, 64) - if err != nil { - panic(err) - } - return n -} - func validateURLs(urls []string) error { for index, u := range urls { if u == "" { diff --git a/internal/models/config.go b/internal/models/config.go index edc1ddc..2767db9 100644 --- a/internal/models/config.go +++ b/internal/models/config.go @@ -9,10 +9,10 @@ import ( ) type Config struct { - ClientHttpURL string `env:"CLIENT_HTTP_URL,default=localhost:8080"` - AdminHttpURL string `env:"ADMIN_HTTP_URL,default=localhost:8081"` - GrpcURL string `env:"GRPC_URL,default=localhost:8081"` - GrpcDomain string `env:"GRPC_DOMAIN,default=https://domen.ru"` + ClientHttpURL string `env:"CLIENT_HTTP_URL"` + AdminHttpURL string `env:"ADMIN_HTTP_URL"` + GrpcURL string `env:"GRPC_URL"` + GrpcDomain string `env:"GRPC_DOMAIN"` AuthMicroserviceURL string `env:"AUTH_MICROSERVICE_URL,required"` // http://10.8.0.6:59300/user HubadminMicroserviceURL string `env:"HUBADMIN_MICROSERVICE_URL,required"` // http://10.8.0.6:59303/tariff CurrencyMicroserviceURL string `env:"CURRENCY_MICROSERVICE_URL,required"` // http://10.8.0.6:3131/change