mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-08 08:53:51 +00:00
e937af62b1
* chore: upgrade relevant deps * fix: electron app to tray * chore: cleanup dictionary * feat: handle several messages in a event * ux: disable irrelevant buttons in browser * feat: parse and validate subscriptions * feat: create UI for OSC Integration * fix: cleanup logger behaviour * feat: allow OSC settings to be changed at runtime
83 lines
2.6 KiB
JavaScript
83 lines
2.6 KiB
JavaScript
import { body, check, validationResult } from 'express-validator';
|
|
import { validateOscSubscription } from '../utils/parserFunctions.js';
|
|
|
|
/**
|
|
* @description Validates object for POST /ontime/views
|
|
*/
|
|
export const viewValidator = [
|
|
check('overrideStyles').isBoolean().withMessage('overrideStyles value must be boolean'),
|
|
(req, res, next) => {
|
|
const errors = validationResult(req);
|
|
if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() });
|
|
next();
|
|
},
|
|
];
|
|
|
|
/**
|
|
* @description Validates object for POST /ontime/aliases
|
|
*/
|
|
export const validateAliases = [
|
|
body().isArray(),
|
|
body('*.enabled').isBoolean(),
|
|
body('*.alias').isString().trim(),
|
|
body('*.pathAndParams').isString().trim(),
|
|
(req, res, next) => {
|
|
const errors = validationResult(req);
|
|
if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() });
|
|
next();
|
|
},
|
|
];
|
|
|
|
/**
|
|
* @description Validates object for POST /ontime/userfields
|
|
*/
|
|
export const validateUserFields = [
|
|
body('user0').exists().isString().trim(),
|
|
body('user1').exists().isString().trim(),
|
|
body('user2').exists().isString().trim(),
|
|
body('user3').exists().isString().trim(),
|
|
body('user4').exists().isString().trim(),
|
|
body('user5').exists().isString().trim(),
|
|
body('user6').exists().isString().trim(),
|
|
body('user7').exists().isString().trim(),
|
|
body('user8').exists().isString().trim(),
|
|
body('user9').exists().isString().trim(),
|
|
(req, res, next) => {
|
|
const errors = validationResult(req);
|
|
if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() });
|
|
next();
|
|
},
|
|
];
|
|
|
|
/**
|
|
* @description Validates object for POST /ontime/settings
|
|
*/
|
|
export const validateSettings = [
|
|
body('pinCode').isString().isLength({ min: 0, max: 4 }).optional({ nullable: true }),
|
|
body('timeFormat').isString().isIn(['12', '24']),
|
|
(req, res, next) => {
|
|
const errors = validationResult(req);
|
|
if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() });
|
|
next();
|
|
},
|
|
];
|
|
|
|
/**
|
|
* @description Validates object for POST /ontime/osc
|
|
*/
|
|
export const validateOSC = [
|
|
body('portIn').exists().isInt({ min: 1024, max: 65535 }),
|
|
body('portOut').exists().isInt({ min: 1024, max: 65535 }),
|
|
body('targetIP').exists().isIP(),
|
|
body('enabledIn').exists().isBoolean(),
|
|
body('enabledOut').exists().isBoolean(),
|
|
body('subscriptions')
|
|
.isObject()
|
|
.custom((value) => validateOscSubscription(value)),
|
|
(req, res, next) => {
|
|
const errors = validationResult(req);
|
|
if (!errors.isEmpty()) return res.status(422).json({ errors: errors.array() });
|
|
next();
|
|
},
|
|
];
|