mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-18 21:54:09 +00:00
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:
@@ -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)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user