cpularp-manager-api/src/lib/config/server/server.go

60 lines
1.1 KiB
Go

package configserver
import (
"fmt"
"io"
"log"
"os"
"github.com/pelletier/go-toml/v2"
)
type AppConfig struct {
API struct {
Domain string
Port string
Https bool
}
Frontend struct {
Domain string
Port string
Https bool
}
OAuth struct {
ClientID string
ClientSecret string
}
}
func (config AppConfig) GetAPIRootDomain() string {
protocol := "http://"
if config.API.Https {
protocol = "https://"
}
log.Println(config.API)
return fmt.Sprintf("%s%s:%s/", protocol, config.API.Domain, config.API.Port)
}
func (config AppConfig) GetFrontendRootDomain() string {
protocol := "http://"
if config.Frontend.Https {
protocol = "https://"
}
log.Println(config.Frontend)
return fmt.Sprintf("%s%s:%s/", protocol, config.Frontend.Domain, config.Frontend.Port)
}
func (config *AppConfig) ParseConfig(configPath string) {
configFile, err := os.Open(configPath)
if err != nil {
log.Fatal(err)
}
configFileContent, err := io.ReadAll(configFile)
if err != nil {
log.Fatal(err)
}
err = toml.Unmarshal(configFileContent, &config)
if err != nil {
log.Fatal(err)
}
}