2024-05-29 13:02:06 +00:00
|
|
|
package initialize
|
|
|
|
|
|
|
|
import (
|
2025-01-01 22:20:08 +00:00
|
|
|
"gitea.pena/PenaSide/common/mongo"
|
2024-05-29 13:02:06 +00:00
|
|
|
"github.com/caarlos0/env/v8"
|
|
|
|
"github.com/joho/godotenv"
|
|
|
|
"log"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Config struct {
|
2024-05-29 14:31:33 +00:00
|
|
|
AppName string `env:"APP_NAME" envDefault:"hub-admin-backend-service"`
|
|
|
|
InternalHttpAddress string `env:"INTERNAL_HTTP_ADDRESS" envDefault:"localhost:8000"`
|
|
|
|
ExternalHttpAddress string `env:"EXTERNAL_HTTP_ADDRESS" envDefault:"localhost:8001"`
|
2024-07-25 10:51:27 +00:00
|
|
|
PrivateKey string `env:"JWT_PRIVATE_KEY"`
|
|
|
|
PublicKey string `env:"JWT_PUBLIC_KEY"`
|
|
|
|
Issuer string `env:"JWT_ISSUER"`
|
|
|
|
Audience string `env:"JWT_AUDIENCE"`
|
2025-01-01 22:20:08 +00:00
|
|
|
ExternalCfg ExternalCfg
|
|
|
|
}
|
|
|
|
|
|
|
|
type ExternalCfg struct {
|
|
|
|
Database mongo.Configuration
|
2024-05-29 13:02:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func LoadConfig() (*Config, error) {
|
|
|
|
if err := godotenv.Load(); err != nil {
|
|
|
|
log.Print("No .env file found")
|
|
|
|
}
|
|
|
|
var config Config
|
|
|
|
if err := env.Parse(&config); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &config, nil
|
|
|
|
}
|