From 4c039220dcf869a2d394a20da06c1effcc45811e Mon Sep 17 00:00:00 2001 From: arc-alex Date: Fri, 3 Nov 2023 16:15:42 +0100 Subject: [PATCH] addtime endpoint --- .../src/controllers/integrationController.ts | 13 +++++++++++ apps/server/src/services/PlaybackService.ts | 23 +++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/apps/server/src/controllers/integrationController.ts b/apps/server/src/controllers/integrationController.ts index 7103dbb69..3d587f355 100644 --- a/apps/server/src/controllers/integrationController.ts +++ b/apps/server/src/controllers/integrationController.ts @@ -174,6 +174,19 @@ export function dispatchFromAdapter( PlaybackService.roll(); break; } + case 'addtime': { + const time = Number(payload); + if (isNaN(time)) { + throw new Error(`Time not recognised ${payload}`); + } + try { + PlaybackService.addTime(time); + } catch (error) { + throw new Error(`Could not add time: ${error}`); + } + break; + } + //deprecated case 'delay': { const delayTime = Number(payload); if (isNaN(delayTime)) { diff --git a/apps/server/src/services/PlaybackService.ts b/apps/server/src/services/PlaybackService.ts index 65dcb1d8a..cd4202fce 100644 --- a/apps/server/src/services/PlaybackService.ts +++ b/apps/server/src/services/PlaybackService.ts @@ -269,17 +269,26 @@ export class PlaybackService { } } + /** + * Adds time to current event + * @param {number} time time in seconds + */ + static addTime(time: number) { + if (eventTimer.loadedTimerId) { + const timeInMs = time * 1000; + eventTimer.delay(timeInMs); + timeInMs > 0 + ? logger.info(LogOrigin.Playback, `Added ${time} sec`) + : logger.info(LogOrigin.Playback, `Removed ${time} sec`); + } + } + /** * Adds delay to current event + * @deprecated Use addTime * @param {number} delayTime time in minutes */ static setDelay(delayTime: number) { - if (eventTimer.loadedTimerId) { - const delayInMs = delayTime * 1000 * 60; - eventTimer.delay(delayInMs); - delayInMs > 0 - ? logger.info(LogOrigin.Playback, `Added ${delayTime} min delay`) - : logger.info(LogOrigin.Playback, `Removed ${delayTime} min delay`); - } + this.addTime(delayTime * 60); } }