refactor: pass HTTP to integration controller (#652)

* refactor: pass HTTP to integration controller

* refactor: deprecate onair control

* refactor: remove playback router
This commit is contained in:
Carlos Valente
2023-12-19 21:44:43 +01:00
committed by GitHub
parent fe9f12a14b
commit 062dc0c914
14 changed files with 280 additions and 477 deletions
@@ -1,6 +1,4 @@
import { Message } from 'ontime-types';
import { TimerMessage } from 'ontime-types/src/definitions/runtime/MessageControl.type.js';
import { Message, TimerMessage } from 'ontime-types';
import { throttle } from '../../utils/throttle.js';
import type { PublishFn } from '../../stores/EventStore.js';
@@ -12,7 +10,6 @@ class MessageService {
publicMessage: Message;
lowerMessage: Message;
externalMessage: Message;
onAir: boolean;
private throttledSet: PublishFn;
private publish: PublishFn | null;
@@ -47,7 +44,6 @@ class MessageService {
visible: false,
};
this.onAir = false;
this.throttledSet = () => {
throw new Error('Published called before initialisation');
};
@@ -78,6 +74,15 @@ class MessageService {
return this.getAll();
}
/**
* @description patches the TimerMessage object
*/
setTimerMessage(payload: Partial<TimerMessage>) {
this.timerMessage = { ...this.timerMessage, ...payload };
this.throttledSet('timerMessage', this.timerMessage);
return this.getAll();
}
/**
* @description sets message on stage timer screen
*/
@@ -132,19 +137,6 @@ class MessageService {
return this.getAll();
}
/**
* @description set state of onAir, toggles if parameters are offered
*/
setOnAir(status?: boolean) {
if (typeof status === 'undefined') {
this.onAir = !this.onAir;
} else {
this.onAir = status;
}
this.throttledSet('onAir', this.onAir);
return this.getAll();
}
/**
* @description set state of timer blink, toggles if parameters are offered
*/
@@ -181,9 +173,25 @@ class MessageService {
timerMessage: this.timerMessage,
publicMessage: this.publicMessage,
lowerMessage: this.lowerMessage,
onAir: this.onAir,
externalMessage: this.externalMessage,
};
}
}
export const messageService = new MessageService();
/**
* Asserts whether an object is a valid TimerMessage patch
* @param obj - object to evaluate
* @returns boolean
*/
export function isPartialTimerMessage(obj: any): obj is Partial<TimerMessage> {
return (
obj &&
typeof obj === 'object' &&
(typeof obj.text === 'string' || obj.text === undefined) &&
(typeof obj.visible === 'boolean' || obj.visible === undefined) &&
(typeof obj.timerBlink === 'boolean' || obj.timerBlink === undefined) &&
(typeof obj.timerBlackout === 'boolean' || obj.timerBlackout === undefined)
);
}