From d0021f946896df5dbaf149b2694b1ba492e4d342 Mon Sep 17 00:00:00 2001 From: keven1024 Date: Tue, 7 Apr 2026 22:54:13 +0800 Subject: [PATCH] feat(backend): refactor GetConfig to extract enabled feature keys and include text-translate provider configuration --- backend/internal/controllers/config.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/backend/internal/controllers/config.go b/backend/internal/controllers/config.go index 30b3b30..8d3610e 100644 --- a/backend/internal/controllers/config.go +++ b/backend/internal/controllers/config.go @@ -10,12 +10,18 @@ import ( "github.com/spf13/cast" ) -func GetConfig(c *echo.Context) error { - featureConfig := u.GetEnvMap("features") - features := lo.FilterMap(lo.Entries(featureConfig), func(e lo.Entry[string, any], _ int) (string, bool) { +func getEnabledKeys(config map[string]any) []string { + return lo.FilterMap(lo.Entries(config), func(e lo.Entry[string, any], _ int) (string, bool) { node, ok := e.Value.(map[string]any) return e.Key, ok && cast.ToBool(node["enabled"]) }) +} + +func GetConfig(c *echo.Context) error { + featureConfig := u.GetEnvMap("features") + features := getEnabledKeys(featureConfig) + textTranslateProviderConfig := u.GetEnvMap("features.text-translate.provider") + textTranslateProviders := getEnabledKeys(textTranslateProviderConfig) return utils.HTTPSuccessHandler(c, map[string]any{ "site_title": u.GetEnvMap("site.title"), @@ -26,5 +32,10 @@ func GetConfig(c *echo.Context) error { "version": u.GetEnvWithDefault("VERSION", "dev"), "build_time": cast.ToInt(u.GetEnvWithDefault("BUILD_TIME", cast.ToString(time.Now().Unix()))), "features": features, + "config": map[string]any{ + "text-translate": map[string]any{ + "provider": textTranslateProviders, + }, + }, }) }