feat: automation service

This commit is contained in:
Carlos Valente
2024-11-23 22:20:07 +01:00
committed by Carlos Valente
parent a8fe4c8e68
commit 05e61e7bf8
28 changed files with 1220 additions and 8 deletions
@@ -0,0 +1,29 @@
import { DatabaseModel, AutomationSettings, Automation, NormalisedAutomationBlueprint } from 'ontime-types';
import { dbModel } from '../../models/dataModel.js';
import type { ErrorEmitter } from '../../utils/parser.js';
export function parseAutomationSettings(data: Partial<DatabaseModel>, emitError?: ErrorEmitter): AutomationSettings {
if (!data.automation) {
emitError?.('No data found to import');
return { ...dbModel.automation };
}
return {
enabledAutomations: data.automation.enabledAutomations ?? dbModel.automation.enabledAutomations,
enabledOscIn: data.automation.enabledOscIn ?? dbModel.automation.enabledOscIn,
oscPortIn: data.automation.oscPortIn ?? dbModel.automation.oscPortIn,
automations: parseAutomations(data.automation.automations),
blueprints: parseBlueprints(data.automation.blueprints),
};
}
function parseAutomations(maybeAutomations: unknown): Automation[] {
if (!Array.isArray(maybeAutomations)) return [];
return maybeAutomations as Automation[];
}
function parseBlueprints(maybeBlueprint: unknown): NormalisedAutomationBlueprint {
if (typeof maybeBlueprint !== 'object' || maybeBlueprint === null) return {};
return maybeBlueprint as NormalisedAutomationBlueprint;
}