Skip to content

Commit ac03e30

Browse files
committed
normalize VARIABLES
1 parent c9fc738 commit ac03e30

File tree

3 files changed

+37
-17
lines changed

3 files changed

+37
-17
lines changed

utils/config/config.go

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package config
33
import (
44
"os"
55
"path/filepath"
6+
"strconv"
67
"strings"
78
"sync"
89

@@ -94,10 +95,6 @@ func LoadEnv(config *koanf.Koanf) (koanf.Provider, error) {
9495
return e, err
9596
}
9697

97-
func mergeConfig(path string, mergeInto *koanf.Koanf, mergeFrom *koanf.Koanf) {
98-
mergeInto.MergeAt(mergeFrom, path)
99-
}
100-
10198
func templateConfig(config *koanf.Koanf) {
10299
data := config.All()
103100

@@ -138,9 +135,10 @@ func normalizeKeys(config *koanf.Koanf) {
138135
config.Load(confmap.Provider(data, "."), nil)
139136
}
140137

141-
func transformChildren(config *koanf.Koanf, prefix string, transform func(key string, value any) (string, any)) error {
138+
// Transforms Children of path
139+
func transformChildren(config *koanf.Koanf, path string, transform func(key string, value any) (string, any)) error {
142140
var sub map[string]any
143-
if err := config.Unmarshal(prefix, &sub); err != nil {
141+
if err := config.Unmarshal(path, &sub); err != nil {
144142
return err
145143
}
146144

@@ -152,16 +150,38 @@ func transformChildren(config *koanf.Koanf, prefix string, transform func(key st
152150
}
153151

154152
config.Load(confmap.Provider(map[string]any{
155-
prefix: map[string]any{},
153+
path: map[string]any{},
156154
}, "."), nil)
157155

158156
config.Load(confmap.Provider(map[string]any{
159-
prefix: transformed,
157+
path: transformed,
160158
}, "."), nil)
161159

162160
return nil
163161
}
164162

163+
// Does the same thing as transformChildren() but does it for each Array Item inside of root and transforms subPath
164+
func transformChildrenUnderArray(config *koanf.Koanf, root string, subPath string, transform func(key string, value any) (string, any)) error {
165+
var tokens []map[string]any
166+
167+
err := config.Unmarshal(root, &tokens)
168+
169+
if err != nil {
170+
return err
171+
}
172+
173+
for i := range tokens {
174+
p := root + "." + strconv.Itoa(i) + "." + subPath
175+
176+
if err := transformChildren(config, p, transform); err != nil {
177+
return err
178+
}
179+
}
180+
181+
return nil
182+
}
183+
184+
165185
func normalizeEnv(key string, value string) (string, any) {
166186
key = strings.ToLower(key)
167187
key = strings.ReplaceAll(key, "__", ".")

utils/config/loader.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ func InitEnv() {
5353

5454
ENV.API_URL = config.String("api.url")
5555

56-
InitTokens()
57-
5856
defaultSettings := ENV.SETTINGS["*"]
5957

6058
config.Unmarshal("messagealiases", &defaultSettings.MESSAGE_ALIASES)
@@ -81,6 +79,8 @@ func Load() {
8179

8280
config = mergeLayers()
8381

82+
InitTokens()
83+
8484
normalizeKeys(config)
8585

8686
templateConfig(config)

utils/config/token-config.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package config
22

33
import (
44
"strconv"
5+
"strings"
56

6-
"github.com/codeshelldev/secured-signal-api/utils"
77
log "github.com/codeshelldev/secured-signal-api/utils/logger"
88
"github.com/knadh/koanf/parsers/yaml"
99
)
@@ -17,20 +17,20 @@ func LoadTokens() {
1717
log.Debug("Loading Configs ", ENV.TOKENS_DIR)
1818

1919
LoadDir("tokenConfigs", ENV.TOKENS_DIR, tokensLayer, yaml.Parser())
20-
21-
log.Dev(utils.ToJson(tokensLayer.All()))
2220
}
2321

2422
func InitTokens() {
2523
apiTokens := config.Strings("api.tokens")
2624

2725
var tokenConfigs []TOKEN_CONFIG_
2826

29-
tokensLayer.Unmarshal("tokenConfigs", &tokenConfigs)
27+
transformChildrenUnderArray(config, "tokenConfigs", "override.variables", func(key string, value any) (string, any) {
28+
return strings.ToUpper(key), value
29+
})
3030

31-
log.Dev(utils.ToJson(tokenConfigs))
31+
tokensLayer.Unmarshal("tokenConfigs", &tokenConfigs)
3232

33-
overrides := ParseTokenConfigs(tokenConfigs)
33+
overrides := parseTokenConfigs(tokenConfigs)
3434

3535
for token, override := range overrides {
3636
apiTokens = append(apiTokens, token)
@@ -57,7 +57,7 @@ func InitTokens() {
5757
}
5858
}
5959

60-
func ParseTokenConfigs(configs []TOKEN_CONFIG_) (map[string]SETTING_) {
60+
func parseTokenConfigs(configs []TOKEN_CONFIG_) (map[string]SETTING_) {
6161
settings := map[string]SETTING_{}
6262

6363
for _, config := range configs {

0 commit comments

Comments
 (0)