refactor: rework decoders logic for cleaner code (#431)

* refactor: rework decoders logic for cleaner code

* refactor: use strcase lib to handle text case conversions
This commit is contained in:
Stavros
2025-10-26 12:01:19 +02:00
committed by GitHub
parent c5bb389258
commit 0227af6d2b
10 changed files with 101 additions and 207 deletions

View File

@@ -1,20 +1,19 @@
package decoders
import (
"tinyauth/internal/config"
"github.com/traefik/paerser/parser"
)
func DecodeEnv(env map[string]string) (config.Providers, error) {
normalized := NormalizeKeys(env, "tinyauth", "_")
var providers config.Providers
func DecodeEnv[T any, C any](env map[string]string, subName string) (T, error) {
var result T
err := parser.Decode(normalized, &providers, "tinyauth", "tinyauth.providers")
normalized := normalizeKeys[C](env, subName, "_")
err := parser.Decode(normalized, &result, "tinyauth", "tinyauth."+subName)
if err != nil {
return config.Providers{}, err
return result, err
}
return providers, nil
return result, nil
}