import Joi from 'joi'; import IdValidate from './id'; export default class ModelValidate { // validate input for model private static model = { group: Joi.string() .disallow('file') .max(128), model: Joi.object({ name: Joi.string() .max(128) .required(), url: Joi.string() .uri() .max(512) .required(), label: Joi.string() .allow('') .max(128) .required() }) }; static input (data) { // validate input return this.model.model.required().validate(data); } static output (data) { // validate output and strip unwanted properties, returns null if not valid data = IdValidate.stringify(data); const {value, error} = Joi.object({ group: this.model.group, models: Joi.array().items(this.model.model.append({_id: IdValidate.get()})) }).validate(data, {stripUnknown: true}); return error !== undefined? null : value; } }