Dev / config /config.go
Mhamdans17
fix: hardcode store name to XOGM Go to override hugging face env variables
b7c8860
Raw
History Blame Contribute Delete
2.44 kB
package config
import (
"log"
"os"
"strconv"
"github.com/joho/godotenv"
)
type Config struct {
DatabaseURL string
TripayMerchantCode string
TripayAPIKey string
TripayPrivateKey string
TripayIsProduction bool
TripayProxyURL string
AppPort int
Port string // Hugging Face Spaces port (default 7860)
AppBaseURL string
JWTSecretKey string
JWTExpiryHours int
FonnteToken string
StoreName string
CloudinaryCloudName string
CloudinaryAPIKey string
CloudinaryAPISecret string
}
var GlobalConfig *Config
func LoadConfig() {
// Muat file .env jika ada (terutama untuk dev lokal)
if err := godotenv.Load(); err != nil {
log.Println("Info: File .env tidak ditemukan, menggunakan variable OS")
}
GlobalConfig = &Config{
DatabaseURL: getEnv("DATABASE_URL", "postgresql://warungpos:warungpos123@db:5432/warungpos_db"),
TripayMerchantCode: getEnv("TRIPAY_MERCHANT_CODE", ""),
TripayAPIKey: getEnv("TRIPAY_API_KEY", ""),
TripayPrivateKey: getEnv("TRIPAY_PRIVATE_KEY", ""),
TripayIsProduction: getEnvBool("TRIPAY_IS_PRODUCTION", true),
TripayProxyURL: getEnv("TRIPAY_PROXY_URL", ""),
AppPort: getEnvInt("APP_PORT", 8003),
Port: getEnv("PORT", "7860"), // Default port Hugging Face Spaces
AppBaseURL: getEnv("APP_BASE_URL", "http://localhost:8003"),
JWTSecretKey: getEnv("JWT_SECRET_KEY", "default-secret-key-change-me"),
JWTExpiryHours: getEnvInt("JWT_EXPIRY_HOURS", 24),
FonnteToken: getEnv("FONNTE_TOKEN", ""),
StoreName: "XOGM Go", // Hardcoded to override old env variables
CloudinaryCloudName: getEnv("CLOUDINARY_CLOUD_NAME", ""),
CloudinaryAPIKey: getEnv("CLOUDINARY_API_KEY", ""),
CloudinaryAPISecret: getEnv("CLOUDINARY_API_SECRET", ""),
}
}
func getEnv(key, fallback string) string {
if value, exists := os.LookupEnv(key); exists {
return value
}
return fallback
}
func getEnvInt(key string, fallback int) int {
str := getEnv(key, "")
if str == "" {
return fallback
}
val, err := strconv.Atoi(str)
if err != nil {
return fallback
}
return val
}
func getEnvBool(key string, fallback bool) bool {
str := getEnv(key, "")
if str == "" {
return fallback
}
val, err := strconv.ParseBool(str)
if err != nil {
return fallback
}
return val
}