From c1c4db597750374f46eece0f9a4531a9b87b4ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Jochum?= Date: Sat, 10 Sep 2022 11:24:50 +0200 Subject: [PATCH] Refactor config handling --- cmd/microrouterd/config/config.go | 66 +++++++++++++++++++ .../microrouterd}/handler/handler.go | 2 +- cmd/microrouterd/main.go | 7 +- internal/config/config.go | 34 ---------- internal/config/load.go | 17 ++--- 5 files changed, 75 insertions(+), 51 deletions(-) create mode 100644 cmd/microrouterd/config/config.go rename {internal => cmd/microrouterd}/handler/handler.go (98%) delete mode 100644 internal/config/config.go diff --git a/cmd/microrouterd/config/config.go b/cmd/microrouterd/config/config.go new file mode 100644 index 0000000..05a58a1 --- /dev/null +++ b/cmd/microrouterd/config/config.go @@ -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: "", + }, + }, +} diff --git a/internal/handler/handler.go b/cmd/microrouterd/handler/handler.go similarity index 98% rename from internal/handler/handler.go rename to cmd/microrouterd/handler/handler.go index 24c9de3..5c3dd88 100644 --- a/internal/handler/handler.go +++ b/cmd/microrouterd/handler/handler.go @@ -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" diff --git a/cmd/microrouterd/main.go b/cmd/microrouterd/main.go index 991065e..cf2a474 100644 --- a/cmd/microrouterd/main.go +++ b/cmd/microrouterd/main.go @@ -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) } diff --git a/internal/config/config.go b/internal/config/config.go deleted file mode 100644 index e4d5a38..0000000 --- a/internal/config/config.go +++ /dev/null @@ -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 -} diff --git a/internal/config/load.go b/internal/config/load.go index 969bde7..3b6c606 100644 --- a/internal/config/load.go +++ b/internal/config/load.go @@ -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 }