From efc2698bbd10fb171e2cc89090904a6d051489d4 Mon Sep 17 00:00:00 2001 From: zkldi Date: Sat, 23 Oct 2021 01:53:00 +0100 Subject: [PATCH] Make all ARC/FLO/EAG/MIN properties optional. --- .../import-types/api/arc-iidx/parser.ts | 6 ++++++ .../import-types/api/arc-sdvx/parser.ts | 6 ++++++ .../import-types/common/api-kai/utils.ts | 9 +++++++++ server/src/lib/setup/config.ts | 20 +++++++++---------- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/server/src/lib/score-import/import-types/api/arc-iidx/parser.ts b/server/src/lib/score-import/import-types/api/arc-iidx/parser.ts index ca08ef1c1..111c16f51 100644 --- a/server/src/lib/score-import/import-types/api/arc-iidx/parser.ts +++ b/server/src/lib/score-import/import-types/api/arc-iidx/parser.ts @@ -15,6 +15,12 @@ export async function ParseArcIIDX( ): Promise> { const authDoc = await GetArcAuthGuaranteed(userID, "api/arc-iidx", logger); + if (!ServerConfig.ARC_AUTH_TOKEN || !ServerConfig.ARC_API_URL) { + throw new Error( + `Cannot parse ArcIIDX withouth ARC_API_URL and ARC_AUTH_TOKEN being defined.` + ); + } + return { iterable: TraverseKaiAPI( ServerConfig.ARC_API_URL, diff --git a/server/src/lib/score-import/import-types/api/arc-sdvx/parser.ts b/server/src/lib/score-import/import-types/api/arc-sdvx/parser.ts index 9d74fac99..ac12a7812 100644 --- a/server/src/lib/score-import/import-types/api/arc-sdvx/parser.ts +++ b/server/src/lib/score-import/import-types/api/arc-sdvx/parser.ts @@ -14,6 +14,12 @@ export async function ParseArcSDVX( ): Promise> { const authDoc = await GetArcAuthGuaranteed(userID, "api/arc-sdvx", logger); + if (!ServerConfig.ARC_AUTH_TOKEN || !ServerConfig.ARC_API_URL) { + throw new Error( + `Cannot parse ArcSDVX withouth ARC_API_URL and ARC_AUTH_TOKEN being defined.` + ); + } + return { iterable: TraverseKaiAPI( ServerConfig.ARC_API_URL, diff --git a/server/src/lib/score-import/import-types/common/api-kai/utils.ts b/server/src/lib/score-import/import-types/common/api-kai/utils.ts index 7eef20a5a..0dc40310c 100644 --- a/server/src/lib/score-import/import-types/common/api-kai/utils.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/utils.ts @@ -2,10 +2,19 @@ import { ServerConfig } from "lib/setup/config"; export function KaiTypeToBaseURL(kaiType: "FLO" | "EAG" | "MIN") { if (kaiType === "FLO") { + if (!ServerConfig.FLO_API_URL) { + throw new Error(`Got kaiType FLO, but no API_URL was defined?`); + } return ServerConfig.FLO_API_URL; } else if (kaiType === "EAG") { + if (!ServerConfig.EAG_API_URL) { + throw new Error(`Got kaiType EAG, but no API_URL was defined?`); + } return ServerConfig.EAG_API_URL; } else if (kaiType === "MIN") { + if (!ServerConfig.MIN_API_URL) { + throw new Error(`Got kaiType MIN, but no API_URL was defined?`); + } return ServerConfig.MIN_API_URL; } diff --git a/server/src/lib/setup/config.ts b/server/src/lib/setup/config.ts index 32ae92230..517306d8a 100644 --- a/server/src/lib/setup/config.ts +++ b/server/src/lib/setup/config.ts @@ -48,14 +48,14 @@ export interface TachiConfig { LOG_LEVEL: "debug" | "verbose" | "info" | "warn" | "error" | "severe" | "crit"; CAPTCHA_SECRET_KEY: string; SESSION_SECRET: string; - FLO_API_URL: string; - EAG_API_URL: string; - MIN_API_URL: string; - ARC_API_URL: string; + FLO_API_URL?: string; + EAG_API_URL?: string; + MIN_API_URL?: string; + ARC_API_URL?: string; FLO_OAUTH2_INFO?: OAuth2Info; EAG_OAUTH2_INFO?: OAuth2Info; MIN_OAUTH2_INFO?: OAuth2Info; - ARC_AUTH_TOKEN: string; + ARC_AUTH_TOKEN?: string; TYPE: "ktchi" | "btchi" | "omni"; ENABLE_SERVER_HTTPS?: boolean; RUN_OWN_CDN?: boolean; @@ -87,14 +87,14 @@ const err = p(config, { LOG_LEVEL: p.isIn("debug", "verbose", "info", "warn", "error", "severe", "crit"), CAPTCHA_SECRET_KEY: "string", SESSION_SECRET: "string", - FLO_API_URL: isValidURL, - EAG_API_URL: isValidURL, - MIN_API_URL: isValidURL, - ARC_API_URL: isValidURL, + FLO_API_URL: p.optional(isValidURL), + EAG_API_URL: p.optional(isValidURL), + MIN_API_URL: p.optional(isValidURL), + ARC_API_URL: p.optional(isValidURL), FLO_OAUTH2_INFO: isValidOauth2, EAG_OAUTH2_INFO: isValidOauth2, MIN_OAUTH2_INFO: isValidOauth2, - ARC_AUTH_TOKEN: "string", + ARC_AUTH_TOKEN: "*string", ENABLE_SERVER_HTTPS: "*boolean", RUN_OWN_CDN: "*boolean", CLIENT_DEV_SERVER: "*?string",