tags/grouping for API
This commit is contained in:
166
server/config.go
166
server/config.go
@@ -15,6 +15,7 @@ type Config struct {
|
||||
DBFile string
|
||||
RequestTimeout time.Duration
|
||||
ReturnRawErrors bool
|
||||
DummyFirebase bool
|
||||
FirebaseTokenURI string
|
||||
FirebaseProjectID string
|
||||
FirebasePrivKeyID string
|
||||
@@ -24,97 +25,110 @@ type Config struct {
|
||||
|
||||
var Conf Config
|
||||
|
||||
var configLocHost = Config{
|
||||
Namespace: "local-host",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "8080",
|
||||
DBFile: ".run-data/db.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: "",
|
||||
FirebasePrivKeyID: "",
|
||||
FirebaseClientMail: "",
|
||||
FirebasePrivateKey: "",
|
||||
var configLocHost = func() Config {
|
||||
return Config{
|
||||
Namespace: "local-host",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "8080",
|
||||
DBFile: ".run-data/db.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
DummyFirebase: true,
|
||||
FirebaseTokenURI: "",
|
||||
FirebaseProjectID: "",
|
||||
FirebasePrivKeyID: "",
|
||||
FirebaseClientMail: "",
|
||||
FirebasePrivateKey: "",
|
||||
}
|
||||
}
|
||||
|
||||
var configLocDocker = Config{
|
||||
Namespace: "local-docker",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn_docker.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: "",
|
||||
FirebasePrivKeyID: "",
|
||||
FirebaseClientMail: "",
|
||||
FirebasePrivateKey: "",
|
||||
var configLocDocker = func() Config {
|
||||
return Config{
|
||||
Namespace: "local-docker",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn_docker.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
DummyFirebase: true,
|
||||
FirebaseTokenURI: "",
|
||||
FirebaseProjectID: "",
|
||||
FirebasePrivKeyID: "",
|
||||
FirebaseClientMail: "",
|
||||
FirebasePrivateKey: "",
|
||||
}
|
||||
}
|
||||
|
||||
var configDev = Config{
|
||||
Namespace: "develop",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: confEnv("FB_PROJECTID"),
|
||||
FirebasePrivKeyID: confEnv("FB_PRIVATEKEYID"),
|
||||
FirebaseClientMail: confEnv("FB_CLIENTEMAIL"),
|
||||
FirebasePrivateKey: confEnv("FB_PRIVATEKEY"),
|
||||
var configDev = func() Config {
|
||||
return Config{
|
||||
Namespace: "develop",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
DummyFirebase: false,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: confEnv("FB_PROJECTID"),
|
||||
FirebasePrivKeyID: confEnv("FB_PRIVATEKEYID"),
|
||||
FirebaseClientMail: confEnv("FB_CLIENTEMAIL"),
|
||||
FirebasePrivateKey: confEnv("FB_PRIVATEKEY"),
|
||||
}
|
||||
}
|
||||
|
||||
var configStag = Config{
|
||||
Namespace: "staging",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: confEnv("FB_PROJECTID"),
|
||||
FirebasePrivKeyID: confEnv("FB_PRIVATEKEYID"),
|
||||
FirebaseClientMail: confEnv("FB_CLIENTEMAIL"),
|
||||
FirebasePrivateKey: confEnv("FB_PRIVATEKEY"),
|
||||
var configStag = func() Config {
|
||||
return Config{
|
||||
Namespace: "staging",
|
||||
GinDebug: true,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: true,
|
||||
DummyFirebase: false,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: confEnv("FB_PROJECTID"),
|
||||
FirebasePrivKeyID: confEnv("FB_PRIVATEKEYID"),
|
||||
FirebaseClientMail: confEnv("FB_CLIENTEMAIL"),
|
||||
FirebasePrivateKey: confEnv("FB_PRIVATEKEY"),
|
||||
}
|
||||
}
|
||||
|
||||
var configProd = Config{
|
||||
Namespace: "production",
|
||||
GinDebug: false,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: false,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: confEnv("FB_PROJECTID"),
|
||||
FirebasePrivKeyID: confEnv("FB_PRIVATEKEYID"),
|
||||
FirebaseClientMail: confEnv("FB_CLIENTEMAIL"),
|
||||
FirebasePrivateKey: confEnv("FB_PRIVATEKEY"),
|
||||
var configProd = func() Config {
|
||||
return Config{
|
||||
Namespace: "production",
|
||||
GinDebug: false,
|
||||
ServerIP: "0.0.0.0",
|
||||
ServerPort: "80",
|
||||
DBFile: "/data/scn.sqlite3",
|
||||
RequestTimeout: 16 * time.Second,
|
||||
ReturnRawErrors: false,
|
||||
DummyFirebase: false,
|
||||
FirebaseTokenURI: "https://oauth2.googleapis.com/token",
|
||||
FirebaseProjectID: confEnv("FB_PROJECTID"),
|
||||
FirebasePrivKeyID: confEnv("FB_PRIVATEKEYID"),
|
||||
FirebaseClientMail: confEnv("FB_CLIENTEMAIL"),
|
||||
FirebasePrivateKey: confEnv("FB_PRIVATEKEY"),
|
||||
}
|
||||
}
|
||||
|
||||
var allConfig = []Config{
|
||||
configLocHost,
|
||||
configLocDocker,
|
||||
configDev,
|
||||
configStag,
|
||||
configProd,
|
||||
var allConfig = map[string]func() Config{
|
||||
"local-host": configLocHost,
|
||||
"local-docker": configLocDocker,
|
||||
"develop": configDev,
|
||||
"staging": configStag,
|
||||
"production": configProd,
|
||||
}
|
||||
|
||||
func getConfig(ns string) (Config, bool) {
|
||||
if ns == "" {
|
||||
return configLocHost, true
|
||||
return configLocHost(), true
|
||||
}
|
||||
for _, c := range allConfig {
|
||||
if c.Namespace == ns {
|
||||
return c, true
|
||||
}
|
||||
if c, ok := allConfig[ns]; ok {
|
||||
return c(), true
|
||||
}
|
||||
return Config{}, false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user