worker/cmd/validator/main.go
pasha1coil 88f7f29259
All checks were successful
Deploy / CreateImage (push) Successful in 3m4s
Deploy / ValidateConfig (push) Successful in 27s
Deploy / MigrateDatabase (push) Successful in 48s
Deploy / DeployService (push) Successful in 27s
fix: if topic not exist in kafka - error
2025-06-18 13:46:46 +00:00

96 lines
2.1 KiB
Go

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 Tariff: %v", err)
}
err = validate.ValidateKafka([]string{cfg.KafkaBrokers}, cfg.KafkaTopicGigaChat)
if err != nil {
log.Fatalf("error validating kafka GigaChat: %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")
}
if cfg.GigaChatApiBaseURL == "" {
return errors.New("giga chat api base url is not be empty")
}
if cfg.GigaChatApiAuthKey == "" {
return errors.New("giga chat api key is not be empty")
}
return nil
}