Refactor config handling

master
René Jochum 2 years ago
parent b5d84434c3
commit c1c4db5977
Signed by: jochum
GPG Key ID: F7D906F5E51E8E5E

@ -0,0 +1,66 @@
package config
var (
Version = "0.0.1-dev0"
)
const (
Name = "go.micro.router"
PkgPath = "jochum.dev/jo-micro/router"
)
const (
EnvDev = "dev"
EnvProd = "prod"
)
type Config struct {
Router RouterConfig
Auth AuthConfig
}
type RouterConfig struct {
Env string
Address string
RouterURI string
RefreshSeconds int
}
type TokenKeys struct {
PubKey string
}
type AuthConfig struct {
AccessToken TokenKeys
RefreshToken TokenKeys
}
func GetConfig() *Config {
return &_cfg
}
func GetRouterConfig() RouterConfig {
return _cfg.Router
}
func GetAuthConfig() AuthConfig {
return _cfg.Auth
}
// internal instance of Config
var _cfg = Config{
Router: RouterConfig{
Env: EnvProd,
Address: ":8080",
RouterURI: "router",
RefreshSeconds: 10,
},
Auth: AuthConfig{
AccessToken: TokenKeys{
PubKey: "",
},
RefreshToken: TokenKeys{
PubKey: "",
},
},
}

@ -15,7 +15,7 @@ import (
"go-micro.dev/v4/errors"
"go-micro.dev/v4/logger"
"google.golang.org/protobuf/types/known/emptypb"
"jochum.dev/jo-micro/router/internal/config"
"jochum.dev/jo-micro/router/cmd/microrouterd/config"
"jochum.dev/jo-micro/router/internal/proto/routerclientpb"
"jochum.dev/jo-micro/router/internal/proto/routerserverpb"
"jochum.dev/jo-micro/router/internal/util"

@ -9,8 +9,9 @@ import (
httpServer "github.com/go-micro/plugins/v4/server/http"
"jochum.dev/jo-micro/router"
"jochum.dev/jo-micro/router/internal/config"
"jochum.dev/jo-micro/router/internal/handler"
"jochum.dev/jo-micro/router/cmd/microrouterd/config"
"jochum.dev/jo-micro/router/cmd/microrouterd/handler"
iConfig "jochum.dev/jo-micro/router/internal/config"
"jochum.dev/jo-micro/router/internal/proto/routerserverpb"
)
@ -64,7 +65,7 @@ func main() {
micro.Server(httpServer.NewServer()),
)
if err := config.Load(); err != nil {
if err := iConfig.Load(config.GetConfig()); err != nil {
logger.Fatal(err)
}

@ -1,34 +0,0 @@
package config
var (
Version = "0.0.1-dev0"
)
const (
Name = "go.micro.router"
PkgPath = "jochum.dev/jo-micro/router"
)
const (
EnvDev = "dev"
EnvProd = "prod"
)
type Config struct {
Router RouterConfig
}
type RouterConfig struct {
Env string
Address string
RouterURI string
RefreshSeconds int
}
func GetConfig() Config {
return *_cfg
}
func GetRouterConfig() RouterConfig {
return _cfg.Router
}

@ -16,18 +16,8 @@ import (
"jochum.dev/jo-micro/router/internal/util"
)
// internal instance of Config
var _cfg *Config = &Config{
Router: RouterConfig{
Env: EnvProd,
Address: ":8080",
RouterURI: "router",
RefreshSeconds: 10,
},
}
// Load will load configurations and update it when changed
func Load() error {
func Load(cfg interface{}) error {
var configor config.Config
var err error
switch strings.ToLower(os.Getenv("CONFIG_TYPE")) {
@ -60,9 +50,10 @@ func Load() error {
if err := configor.Load(); err != nil {
return errors.Wrap(err, "configor.Load")
}
if err := configor.Scan(_cfg); err != nil {
if err := configor.Scan(cfg); err != nil {
return errors.Wrap(err, "configor.Scan")
}
w, err := configor.Watch()
if err != nil {
return errors.Wrap(err, "configor.Watch")
@ -74,7 +65,7 @@ func Load() error {
logger.Error(err)
return
}
if err := v.Scan(_cfg); err != nil {
if err := v.Scan(cfg); err != nil {
logger.Error(err)
return
}

Loading…
Cancel
Save