From c08e4f13f3915189ab380fc0ef5a4fbfe4a8e2da Mon Sep 17 00:00:00 2001 From: pasha1coil Date: Wed, 26 Feb 2025 13:04:56 +0300 Subject: [PATCH] added validate --- cmd/validator/main.go | 85 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 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..6c9605e --- /dev/null +++ b/cmd/validator/main.go @@ -0,0 +1,85 @@ +package main + +import ( + "context" + "errors" + "gitea.pena/PenaSide/common/validate" + "gitea.pena/SQuiz/common/dal" + "gitea.pena/SQuiz/core/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 = dal.New(context.TODO(), cfg.PostgresURL, nil) + if err != nil { + log.Fatalf("error connecting to database postgres: %v", err) + } + + _, err = dal.NewClickHouseDAL(context.TODO(), cfg.ClickhouseURL) + if err != nil { + log.Fatalf("error connecting to database clickhouse: %v", err) + } + + err = validate.ValidateKafka([]string{cfg.KafkaBrokers}, cfg.KafkaTopicNotifyer) + 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) + } + return +} + +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.ClientHttpURL == "" { + return errors.New("client http url dont be empty") + } + + if cfg.GrpcURL == "" { + return errors.New("grpc url dont be empty") + } + + if cfg.HubadminMicroserviceURL == "" { + return errors.New("hubadmin microservice url dont be empty") + } + + if cfg.AuthMicroserviceURL == "" { + return errors.New("auth microservice url dont be empty") + } + + if cfg.TrashLogHost == "" { + return errors.New("trash log host dont be empty") + } + + if cfg.S3Prefix == "" { + return errors.New("s3 prefix dont be empty") + } + + if cfg.ServiceName == "" { + return errors.New("service name dont be empty") + } + + return nil +}