diff --git a/apps/server/src/routes/ontimeRouter.ts b/apps/server/src/routes/ontimeRouter.ts index bc5939ecb..080c7a0ef 100644 --- a/apps/server/src/routes/ontimeRouter.ts +++ b/apps/server/src/routes/ontimeRouter.ts @@ -26,12 +26,12 @@ import { import { validateAliases, validateOSC, - validateOscSubscriptionObject, validatePatchProjectFile, validateSettings, validateUserFields, viewValidator, validateHTTP, + validateOscSubscription, } from '../controllers/ontimeController.validate.js'; import { projectSanitiser } from '../controllers/projectController.validate.js'; @@ -86,7 +86,7 @@ router.get('/osc', getOSC); router.post('/osc', validateOSC, postOSC); // create route between controller and '/ontime/osc-subscriptions' endpoint -router.post('/osc-subscriptions', validateOscSubscriptionObject, postOscSubscriptions); +router.post('/osc-subscriptions', validateOscSubscription, postOscSubscriptions); // create route between controller and '/ontime/http' endpoint router.get('/http', getHTTP); diff --git a/apps/server/src/services/integration-service/HttpIntegration.ts b/apps/server/src/services/integration-service/HttpIntegration.ts index 5912b05f7..6e2db5485 100644 --- a/apps/server/src/services/integration-service/HttpIntegration.ts +++ b/apps/server/src/services/integration-service/HttpIntegration.ts @@ -1,14 +1,15 @@ //TODO: cleanup stuff left over from OSC copy import http from 'node:http'; +import { URL } from 'node:url'; + import { HttpSettings, HttpSubscription, HttpSubscriptionOptions, LogOrigin } from 'ontime-types'; import IIntegration, { TimerLifeCycleKey } from './IIntegration.js'; import { parseTemplateNested } from './integrationUtils.js'; import { dbModel } from '../../models/dataModel.js'; -import { validateHttpSubscriptionEntry } from '../../utils/parserFunctions.js'; import { logger } from '../../classes/Logger.js'; +import { validateHttpSubscriptionObject } from '../../utils/parserFunctions.js'; -import { URL } from 'node:url'; type Action = TimerLifeCycleKey | string; /** @@ -61,8 +62,7 @@ export class HttpIntegration implements IIntegration { } initSubscriptions(subscriptionOptions: HttpSubscription) { - // TODO: here we have to validate the entire subscription object - if (validateHttpSubscriptionEntry(subscriptionOptions)) { + if (validateHttpSubscriptionObject(subscriptionOptions)) { this.subscriptions = { ...subscriptionOptions }; } } diff --git a/apps/server/src/utils/parserFunctions.ts b/apps/server/src/utils/parserFunctions.ts index 985017a8f..23cdeed93 100644 --- a/apps/server/src/utils/parserFunctions.ts +++ b/apps/server/src/utils/parserFunctions.ts @@ -204,6 +204,7 @@ export const parseOsc = (data: { osc?: Partial }): OSCSettings => { if ('osc' in data) { console.log('Found OSC definition, importing...'); + // TODO: this can be improved by only merging known keys const loadedConfig = data.osc || {}; const validatedSubscriptions = validateOscSubscriptionObject(loadedConfig.subscriptions) ? loadedConfig.subscriptions @@ -266,6 +267,7 @@ export const parseHttp = (data: { http?: Partial }): HttpSettings if ('http' in data) { console.log('Found HTTP definition, importing...'); + // TODO: this can be improved by only merging known keys const loadedConfig = data?.http || {}; const validatedSubscriptions = validateHttpSubscriptionObject(loadedConfig.subscriptions) ? loadedConfig.subscriptions