hmn/src/config/types.go

57 lines
1.0 KiB
Go
Raw Normal View History

2021-03-09 08:05:07 +00:00
package config
import (
"fmt"
"github.com/jackc/pgx/v4"
2021-05-06 09:12:18 +00:00
"github.com/rs/zerolog"
)
2021-03-09 08:05:07 +00:00
type Environment string
const (
Live Environment = "live"
Beta = "beta"
Dev = "dev"
)
type HMNConfig struct {
2021-06-22 09:50:40 +00:00
Env Environment
Addr string
BaseUrl string
LogLevel zerolog.Level
Postgres PostgresConfig
Auth AuthConfig
DigitalOcean DigitalOceanConfig
2021-03-09 08:05:07 +00:00
}
type PostgresConfig struct {
User string
Password string
Hostname string
Port int
DbName string
LogLevel pgx.LogLevel
MinConn int32
MaxConn int32
2021-03-09 08:05:07 +00:00
}
2021-03-27 21:10:11 +00:00
type AuthConfig struct {
CookieDomain string
CookieSecure bool
}
2021-06-22 09:50:40 +00:00
type DigitalOceanConfig struct {
AssetsSpacesKey string
AssetsSpacesSecret string
AssetsSpacesRegion string
AssetsSpacesEndpoint string
AssetsSpacesBucket string
AssetsPathPrefix string
AssetsPublicUrlRoot string
}
2021-03-09 08:05:07 +00:00
func (info PostgresConfig) DSN() string {
return fmt.Sprintf("user=%s password=%s host=%s port=%d dbname=%s", info.User, info.Password, info.Hostname, info.Port, info.DbName)
}