From 6a13ca347d9735f77393f33d2c0404b7d43f401b Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 19 Mar 2025 13:38:55 +0600 Subject: [PATCH] api/request/local-processing: don't return an empty audio object & also throw errors whenever a response is invalid --- api/src/processing/request.js | 13 +++++++++++++ web/src/lib/types/api.ts | 6 +++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/api/src/processing/request.js b/api/src/processing/request.js index 2e0cce52..901e8e96 100644 --- a/api/src/processing/request.js +++ b/api/src/processing/request.js @@ -70,6 +70,19 @@ export function createResponse(responseType, responseData) { isHLS: responseData?.isHLS, } + + if (!response.audio.format) { + if (response.type === "audio") { + // audio response without a format is invalid + return internalError(); + } + delete response.audio; + } + + if (!response.output.type || !response.output.filename) { + // response without a type or filename is invalid + return internalError(); + } break; case "picker": diff --git a/web/src/lib/types/api.ts b/web/src/lib/types/api.ts index 5e6e8a84..22e4a672 100644 --- a/web/src/lib/types/api.ts +++ b/web/src/lib/types/api.ts @@ -51,9 +51,9 @@ export type CobaltLocalProcessingResponse = { service: string, tunnel: string[], - output?: { - type?: string, // mimetype - filename?: string, + output: { + type: string, // mimetype + filename: string, metadata?: { album?: string, copyright?: string,