Archived
2

fixed sample requests for the restructured material

This commit is contained in:
VLE2FE
2020-07-17 10:41:19 +02:00
parent 78d35c520e
commit cd81cbf4bd
11 changed files with 115 additions and 28 deletions

View File

@ -18,7 +18,7 @@ export default class MaterialValidate { // validate input for material
numbers: Joi.array()
.items(
Joi.string()
.length(10)
.max(64)
)
};

View File

@ -10,6 +10,7 @@ export default class ParametersValidate {
.valid(...parameter.range.values);
}
else if (parameter.range.hasOwnProperty('min') && parameter.range.hasOwnProperty('max')) {
joiObject[parameter.name] = Joi.number()
.min(parameter.range.min)
.max(parameter.range.max);

View File

@ -62,10 +62,8 @@ export default class SampleValidate {
'material.name',
'material.supplier',
'material.group',
'material.mineral',
'material.glass_fiber',
'material.carbon_fiber',
'material.number',
'material.properties.*',
'measurements.(?!spectrum)*'
];
@ -175,8 +173,8 @@ export default class SampleValidate {
let validator;
let field = data.filters[i].field
if (/material\./.test(field)) { // select right validation model
validator = MaterialValidate.outputV().append({number: Joi.string().max(128).allow('')});
field = field.replace('material.', '');
validator = MaterialValidate.outputV().append({number: Joi.string().max(128).allow(''), properties: Joi.alternatives().try(Joi.number(), Joi.string().max(128))});
field = field.replace('material.', '').split('.')[0];
}
else if (/measurements\./.test(field)) {
validator = Joi.object({
@ -215,7 +213,7 @@ export default class SampleValidate {
filters: Joi.array().items(Joi.object({
mode: Joi.string().valid('eq', 'ne', 'lt', 'lte', 'gt', 'gte', 'in', 'nin'),
field: Joi.string().pattern(new RegExp('^(' + this.fieldKeys.join('|').replace(/\./g, '\\.').replace(/\*/g, '.+') + ')$', 'm')).messages({'string.pattern.base': 'Invalid filter field name'}),
values: Joi.array().items(Joi.alternatives().try(Joi.string().max(128), Joi.number(), Joi.boolean(), Joi.date().iso())).min(1)
values: Joi.array().items(Joi.alternatives().try(Joi.string().max(128), Joi.number(), Joi.boolean(), Joi.date().iso(), Joi.object())).min(1)
})).default([])
}).with('to-page', 'page-size').validate(data);
}