From 979ec02c9a1019152be08705986337e470eabb57 Mon Sep 17 00:00:00 2001 From: Markus Hatvan Date: Tue, 14 Sep 2021 10:34:04 +0200 Subject: chore: codebase improvements (#1930) --- src/api/apiBase.ts | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/api/apiBase.ts (limited to 'src/api/apiBase.ts') diff --git a/src/api/apiBase.ts b/src/api/apiBase.ts new file mode 100644 index 000000000..dc10fad91 --- /dev/null +++ b/src/api/apiBase.ts @@ -0,0 +1,46 @@ +/** + * Get API base URL from store + */ +import { API_VERSION } from '../environment'; +import { + DEV_API_FRANZ_WEBSITE, + LIVE_FRANZ_API, + LOCAL_HOSTNAME, + LOCAL_SERVER, + SERVER_NOT_LOADED, +} from '../config'; + +// Note: This cannot be used from the internal-server since we are not running within the context of a browser window +const apiBase = (withVersion = true) => { + let url: string; + + if ( + !(window as any).ferdi || + !(window as any).ferdi.stores.settings || + !(window as any).ferdi.stores.settings.all || + !(window as any).ferdi.stores.settings.all.app.server + ) { + // Stores have not yet been loaded - return SERVER_NOT_LOADED to force a retry when stores are loaded + return SERVER_NOT_LOADED; + } + if ((window as any).ferdi.stores.settings.all.app.server === LOCAL_SERVER) { + // Use URL for local server + url = `http://${LOCAL_HOSTNAME}:${ + (window as any).ferdi.stores.requests.localServerPort + }`; + } else { + // Load URL from store + url = (window as any).ferdi.stores.settings.all.app.server; + } + + return withVersion ? `${url}/${API_VERSION}` : url; +}; + +export default apiBase; + +export function termsBase() { + // TODO: This needs to handle local vs ferdi vs franz servers + return (window as any).ferdi.stores.settings.all.app.server !== LIVE_FRANZ_API + ? (window as any).ferdi.stores.settings.all.app.server + : DEV_API_FRANZ_WEBSITE; +} -- cgit v1.2.3-54-g00ecf