瀏覽代碼

RHL-038 fix(search): normalize environment variable handling for Qsirch provider configuration

Code_Uwe 2 周之前
父節點
當前提交
c693838c6d
共有 1 個文件被更改,包括 19 次插入3 次删除
  1. 19 3
      lib/search/index.js

+ 19 - 3
lib/search/index.js

@@ -21,6 +21,16 @@ function normalizeProviderName(value) {
 		.toLowerCase();
 }
 
+function normalizeLower(value, fallback) {
+	const raw = String(value ?? "").trim();
+	return raw ? raw.toLowerCase() : fallback;
+}
+
+function normalizeTrim(value, fallback) {
+	const raw = String(value ?? "").trim();
+	return raw ? raw : fallback;
+}
+
 export function getSearchProvider() {
 	if (cachedProvider) return cachedProvider;
 
@@ -34,13 +44,19 @@ export function getSearchProvider() {
 	}
 
 	if (providerName === "qsirch") {
+		// Important: normalize runtime env values so behavior matches validateEnv().
+		// - validateEnv() accepts values case-insensitively.
+		// - runtime must not accidentally pass "Modified"/"ASYNC" etc. to the provider.
 		cachedProvider = createQsirchProvider({
 			baseUrl: process.env.QSIRCH_BASE_URL,
 			account: process.env.QSIRCH_ACCOUNT,
 			password: process.env.QSIRCH_PASSWORD,
-			pathPrefix: process.env.QSIRCH_PATH_PREFIX || "/Niederlassungen",
-			dateField: (process.env.QSIRCH_DATE_FIELD || "modified").trim(),
-			mode: (process.env.QSIRCH_MODE || "sync").trim(),
+			pathPrefix: normalizeTrim(
+				process.env.QSIRCH_PATH_PREFIX,
+				"/Niederlassungen"
+			),
+			dateField: normalizeLower(process.env.QSIRCH_DATE_FIELD, "modified"),
+			mode: normalizeLower(process.env.QSIRCH_MODE, "sync"),
 		});
 
 		return cachedProvider;