75 lines
1.7 KiB
Go
75 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"gitea.pena/PenaSide/common/validate"
|
|
"gitea.pena/PenaSide/verification/internal/config"
|
|
"gitea.pena/PenaSide/verification/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 = validate.ValidateS3(validate.ValidateS3Deps{
|
|
S3Endpoint: cfg.S3Endpoint,
|
|
S3Token: "",
|
|
S3AccessKey: cfg.S3AccessKey,
|
|
S3SecretKey: cfg.S3SecretKey,
|
|
BucketName: repository.VerificationBucket,
|
|
IsProd: true,
|
|
})
|
|
if err != nil {
|
|
log.Fatalf("error validating s3: %v", err)
|
|
}
|
|
|
|
if err = validate.ValidateTgToken(cfg.TelegramToken); err != nil {
|
|
log.Fatalf("error validating telegram token: %v", err)
|
|
}
|
|
|
|
if err = validate.ValidateMongo(cfg.ExternalCfg.Database); err != nil {
|
|
log.Fatalf("error validating mongodb: %v", err)
|
|
}
|
|
|
|
}
|
|
|
|
func loadConfig() (config.Config, error) {
|
|
var cfg config.Config
|
|
|
|
if err := env.Parse(&cfg); err != nil {
|
|
return cfg, err
|
|
}
|
|
return cfg, nil
|
|
}
|
|
|
|
func validateNotEmpty(cfg config.Config) error {
|
|
if cfg.TelegramChannelID == 0 {
|
|
return fmt.Errorf("TelegramChannelID is empty")
|
|
}
|
|
if cfg.ClientHttpURL == "" {
|
|
return fmt.Errorf("ClientHttpURL is empty")
|
|
}
|
|
if cfg.AdminHttpURL == "" {
|
|
return fmt.Errorf("AdminHttpURL is empty")
|
|
}
|
|
if cfg.CustomerMicroserviceRPCURL == "" {
|
|
return fmt.Errorf("CustomerMicroserviceRPCURL is empty")
|
|
}
|
|
if cfg.TrashLogHost == "" {
|
|
return fmt.Errorf("TrashLogHost is empty")
|
|
}
|
|
if cfg.VerificationMicroserviceURL == "" {
|
|
return fmt.Errorf("VerificationMicroserviceURL is empty")
|
|
}
|
|
return nil
|
|
}
|