storer/cmd/validator/main.go
2025-04-17 15:44:59 +03:00

60 lines
1.2 KiB
Go

package main
import (
"context"
"errors"
"gitea.pena/PenaSide/common/validate"
"gitea.pena/SQuiz/common/dal"
"gitea.pena/SQuiz/storer/internal/initialize"
"gitea.pena/SQuiz/storer/internal/repository"
"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 postgres: %v", err)
}
err = validate.ValidateS3(validate.ValidateS3Deps{
S3Endpoint: cfg.S3Endpoint,
S3SecretKey: cfg.S3SecretKey,
S3AccessKey: cfg.S3AccessKey,
S3Token: "",
BucketName: repository.Bucket,
IsProd: cfg.IsProd,
})
if err != nil {
log.Fatalf("error validating S3: %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")
}
return nil
}