diff options
author | Sebastian <sebasjm@gmail.com> | 2024-04-30 14:21:01 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-04-30 14:21:15 -0300 |
commit | 20d2861508df18da18e66c94a5a268067565121b (patch) | |
tree | 24421fb8c797d50d5ad6bc7c6ff6460f469b5e11 /packages/aml-backoffice-ui/src/settings.ts | |
parent | 84adb1e78e49057cdcee15c71ad788f56bb0fff9 (diff) | |
download | wallet-core-20d2861508df18da18e66c94a5a268067565121b.tar.xz |
testing aml form as json
Diffstat (limited to 'packages/aml-backoffice-ui/src/settings.ts')
-rw-r--r-- | packages/aml-backoffice-ui/src/settings.ts | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/packages/aml-backoffice-ui/src/settings.ts b/packages/aml-backoffice-ui/src/settings.ts deleted file mode 100644 index a4a693d7d..000000000 --- a/packages/aml-backoffice-ui/src/settings.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2022-2024 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - - import { - Codec, - buildCodecForObject, - canonicalizeBaseUrl, - codecForString, - codecOptional -} from "@gnu-taler/taler-util"; - -export interface UiSettings { - // Where libeufin backend is localted - // default: window.origin without "webui/" - backendBaseURL?: string; - // Shows a button "create random account" in the registration form - // Useful for testing - // default: false - signupEmail?: string; -} - -/** - * Global settings for the bank UI. - */ -const defaultSettings: UiSettings = { - backendBaseURL: buildDefaultBackendBaseURL(), - signupEmail: undefined, -}; - -const codecForBankUISettings = (): Codec<UiSettings> => - buildCodecForObject<UiSettings>() - .property("backendBaseURL", codecOptional(codecForString())) - .property("signupEmail", codecOptional(codecForString())) - .build("UiSettings"); - -function removeUndefineField<T extends object>(obj: T): T { - const keys = Object.keys(obj) as Array<keyof T>; - return keys.reduce((prev, cur) => { - if (typeof prev[cur] === "undefined") { - delete prev[cur]; - } - return prev; - }, obj); -} - -export function fetchSettings(listener: (s: UiSettings) => void): void { - fetch("./settings.json") - .then((resp) => resp.json()) - .then((json) => codecForBankUISettings().decode(json)) - .then((result) => - listener({ - ...defaultSettings, - ...removeUndefineField(result), - }), - ) - .catch((e) => { - console.log("failed to fetch settings", e); - listener(defaultSettings); - }); -} - -function buildDefaultBackendBaseURL(): string | undefined { - if (typeof window !== "undefined") { - const currentLocation = new URL( - window.location.pathname, - window.location.origin, - ).href; - /** - * By default, bank backend serves the html content - * from the /webui root. - */ - return canonicalizeBaseUrl(currentLocation.replace("/webui", "")); - } - throw Error("No default URL"); -} - - |