Archived
2

spectrum field working again

This commit is contained in:
VLE2FE
2020-07-09 13:48:27 +02:00
parent 6a02f09e7f
commit 1ddc2b617a
13 changed files with 269 additions and 115 deletions

View File

@ -11,7 +11,8 @@ export default class SampleValidate {
.max(128),
color: Joi.string()
.max(128),
.max(128)
.allow(''),
type: Joi.string()
.max(128),
@ -77,7 +78,7 @@ export default class SampleValidate {
'user_id',
'material._id',
'material.numbers',
'measurements.spectrum'
'measurements.spectrum.dpt'
];
static input (data, param) { // validate input, set param to 'new' to make all attributes required
@ -170,6 +171,33 @@ export default class SampleValidate {
try {
for (let i in data.filters) {
data.filters[i] = JSON.parse(data.filters[i]);
data.filters[i].values = data.filters[i].values.map(e => { // validate filter values
let validator;
let field = data.filters[i].field
if (/material\./.test(field)) { // select right validation model
validator = MaterialValidate.outputV();
field = field.replace('material.', '');
}
else if (/measurements\./.test(field)) {
validator = Joi.object({
value: Joi.alternatives()
.try(
Joi.string().max(128),
Joi.number(),
Joi.boolean(),
Joi.array()
)
.allow(null)
});
field = 'value';
}
else {
validator = Joi.object(this.sample);
}
const {value, error} = validator.validate({[field]: e});
if (error) throw error; // reject invalid values
return value[field];
});
}
}
catch {