From 2b87f72acb024068e63f93401258ffe509973c9d Mon Sep 17 00:00:00 2001 From: arc-alex Date: Sat, 4 Nov 2023 20:32:30 +0100 Subject: [PATCH] unify osc and http validateSubscriptionEntry --- .../controllers/ontimeController.validate.ts | 16 ++++++++-------- apps/server/src/routes/ontimeRouter.ts | 4 ++-- apps/server/src/utils/parserFunctions.ts | 19 +------------------ 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/apps/server/src/controllers/ontimeController.validate.ts b/apps/server/src/controllers/ontimeController.validate.ts index 5f67aa4e3..5b5b8c216 100644 --- a/apps/server/src/controllers/ontimeController.validate.ts +++ b/apps/server/src/controllers/ontimeController.validate.ts @@ -1,5 +1,5 @@ import { body, check, validationResult } from 'express-validator'; -import { validateOscObject, validateOscSubscriptionEntry } from '../utils/parserFunctions.js'; +import { validateOscObject, validateSubscriptionEntry } from '../utils/parserFunctions.js'; /** * @description Validates object for POST /ontime/views @@ -93,25 +93,25 @@ export const validateOSC = [ /** * @description Validates object for POST /ontime/osc-subscriptions */ -export const validateOscSubscription = [ +export const validateSubscription = [ body('onLoad') .isArray() - .custom((value) => validateOscSubscriptionEntry(value)), + .custom((value) => validateSubscriptionEntry(value)), body('onStart') .isArray() - .custom((value) => validateOscSubscriptionEntry(value)), + .custom((value) => validateSubscriptionEntry(value)), body('onPause') .isArray() - .custom((value) => validateOscSubscriptionEntry(value)), + .custom((value) => validateSubscriptionEntry(value)), body('onStop') .isArray() - .custom((value) => validateOscSubscriptionEntry(value)), + .custom((value) => validateSubscriptionEntry(value)), body('onUpdate') .isArray() - .custom((value) => validateOscSubscriptionEntry(value)), + .custom((value) => validateSubscriptionEntry(value)), body('onFinish') .isArray() - .custom((value) => validateOscSubscriptionEntry(value)), + .custom((value) => validateSubscriptionEntry(value)), (req, res, next) => { const errors = validationResult(req); if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() }); diff --git a/apps/server/src/routes/ontimeRouter.ts b/apps/server/src/routes/ontimeRouter.ts index 8ff789817..11450bb36 100644 --- a/apps/server/src/routes/ontimeRouter.ts +++ b/apps/server/src/routes/ontimeRouter.ts @@ -22,7 +22,7 @@ import { import { validateAliases, validateOSC, - validateOscSubscription, + validateSubscription, validateSettings, validateUserFields, viewValidator, @@ -74,7 +74,7 @@ router.get('/osc', getOSC); router.post('/osc', validateOSC, postOSC); // create route between controller and '/ontime/osc-subscriptions' endpoint -router.post('/osc-subscriptions', validateOscSubscription, postOscSubscriptions); +router.post('/osc-subscriptions', validateSubscription, postOscSubscriptions); // create route between controller and '/ontime/new' endpoint router.post('/new', projectSanitiser, postNew); diff --git a/apps/server/src/utils/parserFunctions.ts b/apps/server/src/utils/parserFunctions.ts index e9e3a1ed5..d576e73e6 100644 --- a/apps/server/src/utils/parserFunctions.ts +++ b/apps/server/src/utils/parserFunctions.ts @@ -191,7 +191,7 @@ export const parseViewSettings = (data, enforce): ViewSettings => { * Parses and validates subscription entry * @param data */ -export const validateOscSubscriptionEntry = (data: SubscriptionOptions): boolean => { +export const validateSubscriptionEntry = (data: SubscriptionOptions): boolean => { for (const subscription in data) { if (typeof data[subscription].message !== 'string' || typeof data[subscription].enabled !== 'boolean') { return false; @@ -253,19 +253,6 @@ export const parseOsc = ( } else return {}; }; -/** - * Parses and validates subscription entry - * @param data - */ -export const validateHttpSubscriptionEntry = (data: SubscriptionOptions): boolean => { - for (const subscription in data) { - if (typeof data[subscription].message !== 'string' || typeof data[subscription].enabled !== 'boolean') { - return false; - } - } - return true; -}; - /** * Parses and validates subscription object * @param data @@ -309,10 +296,6 @@ export const parseHttp = ( : dbModel.http.subscriptions; return { - portIn: loadedConfig.portIn ?? dbModel.http.portIn, - portOut: loadedConfig.portOut ?? dbModel.http.portOut, - targetIP: loadedConfig.targetIP ?? dbModel.http.targetIP, - enabledIn: loadedConfig.enabledIn ?? dbModel.http.enabledIn, enabledOut: loadedConfig.enabledOut ?? dbModel.http.enabledOut, subscriptions: validatedSubscriptions, };