From edede9c35c221bc97706badfa816883a78754854 Mon Sep 17 00:00:00 2001 From: Pasha Date: Tue, 25 Feb 2025 18:01:22 +0300 Subject: [PATCH] added validate --- cmd/validator/main.go | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 cmd/validator/main.go diff --git a/cmd/validator/main.go b/cmd/validator/main.go new file mode 100644 index 0000000..8bce47b --- /dev/null +++ b/cmd/validator/main.go @@ -0,0 +1,82 @@ +package main + +import ( + "context" + "errors" + "gitea.pena/PenaSide/common/validate" + "gitea.pena/SQuiz/common/dal" + "gitea.pena/SQuiz/worker/internal/initialize" + "github.com/caarlos0/env/v8" + "log" +) + +func main() { + cfg, err := loadConfig() + if err != nil { + log.Fatalf("error loading config: %v", err) + } + + err = validateNotEmpty(cfg) + if err != nil { + log.Fatalf("error validating config: %v", err) + } + + err = validate.ValidateKafka([]string{cfg.KafkaBrokers}, cfg.KafkaTopicTariff) + if err != nil { + log.Fatalf("error validating kafka: %v", err) + } + + err = validate.ValidateRedis(cfg.RedisHost, cfg.RedisPassword, int(cfg.RedisDB)) + if err != nil { + log.Fatalf("error validating redis: %v", err) + } + + err = validate.ValidateSmtp(cfg.ApiKey) + if err != nil { + log.Fatalf("error validating smtp: %v", err) + } + + _, err = dal.New(context.TODO(), cfg.PostgresURL, nil) + if err != nil { + log.Fatalf("error connecting to postgres: %v", err) + } + + // s3 пока не валидируем пока не слились все ветки +} + +func loadConfig() (initialize.Config, error) { + var cfg initialize.Config + + if err := env.Parse(&cfg); err != nil { + return cfg, err + } + return cfg, nil +} + +func validateNotEmpty(cfg initialize.Config) error { + if cfg.ServiceName == "" { + return errors.New("service name is not be empty") + } + + if cfg.CustomerMicroserviceRPCURL == "" { + return errors.New("customer microservice rpc url is not be empty") + } + + if cfg.TelegramToken == "" { + return errors.New("telegram token is not be empty") + } + + if cfg.Sender == "" { + return errors.New("sender is not be empty") + } + + if cfg.ApiKey == "" { + return errors.New("api key is not be empty") + } + + if cfg.ApiUrl == "" { + return errors.New("api url is not be empty") + } + + return nil +}