From ab372b835772fa0708757978f5c74e28d292ebfa Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Fri, 10 May 2024 12:07:39 -0400 Subject: [PATCH] refactor(config)!: Move source retry config to options --- config/config.json.example | 8 ++++---- .../common/infrastructure/config/source/index.ts | 4 ++-- src/backend/sources/AbstractSource.ts | 4 ++-- src/backend/sources/DeezerSource.ts | 2 +- src/backend/sources/SpotifySource.ts | 2 +- src/backend/sources/SubsonicSource.ts | 14 +++++++++----- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/config/config.json.example b/config/config.json.example index a7101cca..857b30e5 100644 --- a/config/config.json.example +++ b/config/config.json.example @@ -2,9 +2,6 @@ "debugMode": false, "disableWeb": false, "sourceDefaults": { - "maxPollRetries": 1, - "maxRequestRetries": 1, - "retryMultiplier": 1.5, "options": { "logPayload": false, "logFilterFailure": "warn", @@ -12,7 +9,10 @@ "scrobbleThresholds": { "duration": 30, "percent": 50 - } + }, + "maxPollRetries": 1, + "maxRequestRetries": 1, + "retryMultiplier": 1.5 } }, "clientDefaults": { diff --git a/src/backend/common/infrastructure/config/source/index.ts b/src/backend/common/infrastructure/config/source/index.ts index 34541bab..aa05ab87 100644 --- a/src/backend/common/infrastructure/config/source/index.ts +++ b/src/backend/common/infrastructure/config/source/index.ts @@ -39,7 +39,7 @@ export interface ScrobbleThresholds { percent?: number | null } -export interface CommonSourceOptions { +export interface CommonSourceOptions extends SourceRetryOptions { /** * If this source has INGRESS to MS (sends a payload, rather than MS GETTING requesting a payload) * then setting this option to true will make MS log the payload JSON to DEBUG output @@ -90,7 +90,7 @@ export interface CommonSourceOptions { scrobbleThresholds?: ScrobbleThresholds } -export interface CommonSourceData extends CommonData, SourceRetryOptions { +export interface CommonSourceData extends CommonData { } diff --git a/src/backend/sources/AbstractSource.ts b/src/backend/sources/AbstractSource.ts index b54e58f2..ff2c55b0 100644 --- a/src/backend/sources/AbstractSource.ts +++ b/src/backend/sources/AbstractSource.ts @@ -397,10 +397,10 @@ export default abstract class AbstractSource implements Authenticatable { this.pollRetries = 0; const { - data: { + options: { maxPollRetries = 5, retryMultiplier = DEFAULT_RETRY_MULTIPLIER, - } = {}, + } } = this.config; // can't have negative retries! diff --git a/src/backend/sources/DeezerSource.ts b/src/backend/sources/DeezerSource.ts index 7c95cd63..79c1b6cf 100644 --- a/src/backend/sources/DeezerSource.ts +++ b/src/backend/sources/DeezerSource.ts @@ -142,7 +142,7 @@ export default class DeezerSource extends AbstractSource { const { maxRequestRetries = 1, retryMultiplier = DEFAULT_RETRY_MULTIPLIER - } = this.config.data; + } = this.config.options; req.query({ access_token: this.config.data.accessToken, diff --git a/src/backend/sources/SpotifySource.ts b/src/backend/sources/SpotifySource.ts index 905eeeff..a67701ef 100644 --- a/src/backend/sources/SpotifySource.ts +++ b/src/backend/sources/SpotifySource.ts @@ -414,7 +414,7 @@ export default class SpotifySource extends MemorySource { const { maxRequestRetries = 1, retryMultiplier = 2, - } = this.config.data; + } = this.config.options; try { return await func(this.spotifyApi); } catch (e) { diff --git a/src/backend/sources/SubsonicSource.ts b/src/backend/sources/SubsonicSource.ts index ae8f3626..6af5642b 100644 --- a/src/backend/sources/SubsonicSource.ts +++ b/src/backend/sources/SubsonicSource.ts @@ -70,11 +70,15 @@ export class SubsonicSource extends MemorySource { callApi = async (req: Request, retries = 0): Promise => { const { - user, - password, - maxRequestRetries = 1, - retryMultiplier = DEFAULT_RETRY_MULTIPLIER - } = this.config.data; + data: { + user, + password + } = {}, + options: { + maxRequestRetries = 1, + retryMultiplier = DEFAULT_RETRY_MULTIPLIER + } = {}, + } = this.config; const queryOpts: Record = { u: user, -- 2.51.2