drop getEnv added caarlos0

This commit is contained in:
Pasha 2024-12-09 13:30:16 +03:00
parent 95f1c98e11
commit 9ecf87c796
2 changed files with 51 additions and 58 deletions

@ -3,16 +3,12 @@ package main
import ( import (
"context" "context"
"fmt" "fmt"
"gitea.pena/PenaSide/common/encrypt"
"gitea.pena/PenaSide/common/mongo"
"gitea.pena/PenaSide/common/validate" "gitea.pena/PenaSide/common/validate"
"gitea.pena/PenaSide/customer/internal/models" "gitea.pena/PenaSide/customer/internal/models"
"github.com/caarlos0/env/v8"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/twmb/franz-go/pkg/kgo" "github.com/twmb/franz-go/pkg/kgo"
"log" "log"
"os"
"strconv"
"strings"
"time" "time"
) )
@ -69,60 +65,57 @@ func main() {
// 38 fields // 38 fields
func loadConfig() (*models.Config, error) { func loadConfig() (*models.Config, error) {
config := models.Config{ //config := models.Config{
ExternalCfg: models.ExternalCfg{ // ExternalCfg: models.ExternalCfg{
JwtCfg: models.JWTConfiguration{ // JwtCfg: models.JWTConfiguration{
PublicKey: os.Getenv("JWT_PUBLIC_KEY"), // PublicKey: os.Getenv("JWT_PUBLIC_KEY"),
Audience: os.Getenv("JWT_AUDIENCE"), // Audience: os.Getenv("JWT_AUDIENCE"),
Issuer: os.Getenv("JWT_ISSUER"), // Issuer: os.Getenv("JWT_ISSUER"),
}, // },
Database: mongo.Configuration{ // Database: mongo.Configuration{
URL: os.Getenv("MONGO_URL"), // URL: os.Getenv("MONGO_URL"),
DatabaseName: os.Getenv("MONGO_DB_NAME"), // DatabaseName: os.Getenv("MONGO_DB_NAME"),
}, // },
MailClientCfg: models.MailClientCfg{ // MailClientCfg: models.MailClientCfg{
ApiURL: os.Getenv("API_URL"), // ApiURL: os.Getenv("API_URL"),
Sender: os.Getenv("MAIL_SENDER"), // Sender: os.Getenv("MAIL_SENDER"),
ApiKey: os.Getenv("MAIL_API_KEY"), // ApiKey: os.Getenv("MAIL_API_KEY"),
MailAddress: os.Getenv("MAIL_ADDRESS"), // MailAddress: os.Getenv("MAIL_ADDRESS"),
}, // },
EncryptCommon: encrypt.Encrypt{ // EncryptCommon: encrypt.Encrypt{
PrivKey: os.Getenv("ENCRYPT_PRIVATE_KEY"), // PrivKey: os.Getenv("ENCRYPT_PRIVATE_KEY"),
PubKey: os.Getenv("ENCRYPT_PUBLIC_KEY"), // PubKey: os.Getenv("ENCRYPT_PUBLIC_KEY"),
}, // },
}, // },
ClientHttpURL: os.Getenv("CLIENT_HTTP_URL"), // ClientHttpURL: os.Getenv("CLIENT_HTTP_URL"),
AdminHttpURL: os.Getenv("ADMIN_HTTP_URL"), // AdminHttpURL: os.Getenv("ADMIN_HTTP_URL"),
GrpcURL: os.Getenv("GRPC_URL"), // GrpcURL: os.Getenv("GRPC_URL"),
GrpcDomain: os.Getenv("GRPC_DOMAIN"), // GrpcDomain: os.Getenv("GRPC_DOMAIN"),
KafkaBrokers: strings.Split(os.Getenv("KAFKA_BROKERS"), ","), // KafkaBrokers: strings.Split(os.Getenv("KAFKA_BROKERS"), ","),
KafkaTopicTariff: os.Getenv("KAFKA_TOPIC_TARIFF"), // KafkaTopicTariff: os.Getenv("KAFKA_TOPIC_TARIFF"),
AuthMicroserviceURL: os.Getenv("AUTH_MICROSERVICE_URL"), // AuthMicroserviceURL: os.Getenv("AUTH_MICROSERVICE_URL"),
HubadminMicroserviceURL: os.Getenv("HUBADMIN_MICROSERVICE_URL"), // HubadminMicroserviceURL: os.Getenv("HUBADMIN_MICROSERVICE_URL"),
CurrencyMicroserviceURL: os.Getenv("CURRENCY_MICROSERVICE_URL"), // CurrencyMicroserviceURL: os.Getenv("CURRENCY_MICROSERVICE_URL"),
DiscountMicroserviceGRPC: os.Getenv("DISCOUNT_MICROSERVICE_GRPC_URL"), // DiscountMicroserviceGRPC: os.Getenv("DISCOUNT_MICROSERVICE_GRPC_URL"),
PaymentMicroserviceGRPC: os.Getenv("PAYMENT_MICROSERVICE_GRPC_URL"), // PaymentMicroserviceGRPC: os.Getenv("PAYMENT_MICROSERVICE_GRPC_URL"),
VerificationMicroservice: os.Getenv("VERIFICATION_MICROSERVICE_URL"), // VerificationMicroservice: os.Getenv("VERIFICATION_MICROSERVICE_URL"),
TemplategenMicroserviceURL: os.Getenv("TEMPLATEGEN_MICROSERVICE_URL"), // TemplategenMicroserviceURL: os.Getenv("TEMPLATEGEN_MICROSERVICE_URL"),
CodewordMicroserviceGRPC: os.Getenv("CODEWORD_MICROSERVICE_GRPC_URL"), // CodewordMicroserviceGRPC: os.Getenv("CODEWORD_MICROSERVICE_GRPC_URL"),
TrashLogHost: os.Getenv("TRASH_LOG_HOST"), // TrashLogHost: os.Getenv("TRASH_LOG_HOST"),
NotificationBotToken: os.Getenv("TELEGRAM_TOKEN"), // NotificationBotToken: os.Getenv("TELEGRAM_TOKEN"),
NotificationRsPayChannel: envToInt64(os.Getenv("TELEGRAM_RS_PAY_CHANNEL_ID")), // NotificationRsPayChannel: envToInt64(os.Getenv("TELEGRAM_RS_PAY_CHANNEL_ID")),
NotificationChannel: envToInt64(os.Getenv("TELEGRAM_NOTIFICATION_CHANNEL_ID")), // NotificationChannel: envToInt64(os.Getenv("TELEGRAM_NOTIFICATION_CHANNEL_ID")),
AdminURL: os.Getenv("ADMIN_FRONT_URL"), // 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 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 { func validateURLs(urls []string) error {
for index, u := range urls { for index, u := range urls {
if u == "" { if u == "" {

@ -9,10 +9,10 @@ import (
) )
type Config struct { type Config struct {
ClientHttpURL string `env:"CLIENT_HTTP_URL,default=localhost:8080"` ClientHttpURL string `env:"CLIENT_HTTP_URL"`
AdminHttpURL string `env:"ADMIN_HTTP_URL,default=localhost:8081"` AdminHttpURL string `env:"ADMIN_HTTP_URL"`
GrpcURL string `env:"GRPC_URL,default=localhost:8081"` GrpcURL string `env:"GRPC_URL"`
GrpcDomain string `env:"GRPC_DOMAIN,default=https://domen.ru"` GrpcDomain string `env:"GRPC_DOMAIN"`
AuthMicroserviceURL string `env:"AUTH_MICROSERVICE_URL,required"` // http://10.8.0.6:59300/user 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 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 CurrencyMicroserviceURL string `env:"CURRENCY_MICROSERVICE_URL,required"` // http://10.8.0.6:3131/change