2023-06-12 14:19:10 +00:00
package config
import (
2024-11-29 07:19:26 +00:00
"gitea.pena/PenaSide/common/mongo"
2023-06-12 14:19:10 +00:00
"github.com/caarlos0/env/v8"
"github.com/joho/godotenv"
)
type Config struct {
2024-12-09 12:18:56 +00:00
TelegramToken string ` env:"TELEGRAM_TOKEN,required" `
TelegramChannelID int64 ` env:"TELEGRAM_CHANNEL_ID,required" `
ClientHttpURL string ` env:"CLIENT_HTTP_URL,required" `
AdminHttpURL string ` env:"ADMIN_HTTP_URL,required" `
S3Endpoint string ` env:"S3_ENDPOINT,required" `
S3AccessKey string ` env:"S3_ACCESS_KEY,required" `
S3SecretKey string ` env:"S3_SECRET_KEY,required" `
S3Folder string ` env:"S3_FOLDER,required" `
S3FileUrl string ` env:"S3_FILE_URL,required" `
CustomerMicroserviceRPCURL string ` env:"CUSTOMER_MICROSERVICE_RPC_URL,required" `
TrashLogHost string ` env:"TRASH_LOG_HOST,required" `
2024-12-10 13:57:59 +00:00
// TODO: совсем непонятное название. эта штука собой представляет домен, админки стейджинга или прода в зависимости от того, с о стейджинга или с прода пришла заявка и нужен только для формирования удобного для админа сообщения в телегу
2024-12-09 12:18:56 +00:00
VerificationMicroserviceURL string ` env:"VERIFICATION_MICROSERVICE_URL,required" `
2024-12-09 13:54:52 +00:00
ExternalCfg External
2024-12-09 12:18:56 +00:00
}
type External struct {
Database mongo . Configuration
2023-06-12 14:19:10 +00:00
}
func NewConfig ( file ... string ) ( * Config , error ) {
if err := godotenv . Load ( file ... ) ; err != nil {
return nil , err
}
var cfg Config
if err := env . Parse ( & cfg ) ; err != nil {
return nil , err
}
return & cfg , nil
}
2024-12-09 12:18:56 +00:00
const ModuleLogger = "verification"