improved globals and added status and spectrum
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
import Joi from 'joi';
|
||||
|
||||
import IdValidate from './id';
|
||||
import globals from '../../globals';
|
||||
|
||||
export default class MaterialValidate { // validate input for material
|
||||
private static material = {
|
||||
@ -84,7 +85,7 @@ export default class MaterialValidate { // validate input for material
|
||||
|
||||
static query (data) {
|
||||
return Joi.object({
|
||||
status: Joi.string().valid('validated', 'new', 'all')
|
||||
status: Joi.string().valid(globals.status.val, globals.status.new, 'all')
|
||||
}).validate(data);
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
import Joi from 'joi';
|
||||
|
||||
import IdValidate from './id';
|
||||
import globals from '../../globals';
|
||||
|
||||
export default class MeasurementValidate {
|
||||
private static measurement = {
|
||||
@ -37,8 +38,8 @@ export default class MeasurementValidate {
|
||||
static output (data, req) { // validate output and strip unwanted properties, returns null if not valid
|
||||
data = IdValidate.stringify(data);
|
||||
// spectral data not allowed for read/write users
|
||||
if (['dev', 'admin'].indexOf(req.authDetails.level) < 0 && data.values.dpt) {
|
||||
delete data.values.dpt;
|
||||
if (['dev', 'admin'].indexOf(req.authDetails.level) < 0 && data.values[globals.spectrum.dpt]) {
|
||||
delete data.values[globals.spectrum.dpt];
|
||||
}
|
||||
const {value, error} = Joi.object({
|
||||
_id: IdValidate.get(),
|
||||
|
@ -36,7 +36,7 @@ export default class RootValidate { // validate input for root methods
|
||||
|
||||
static changelogOutput (data) {
|
||||
data.date = data._id.getTimestamp();
|
||||
data.collection = data.collectionName;
|
||||
data.collection = data.collection_name;
|
||||
data = IdValidate.stringify(data);
|
||||
const {value, error} = Joi.object({
|
||||
date: this.changelog.timestamp,
|
||||
|
@ -53,7 +53,7 @@ export default class SampleValidate {
|
||||
.min('1970-01-01T00:00:00.000Z'),
|
||||
|
||||
status: Joi.string()
|
||||
.valid(...globals.status)
|
||||
.valid(...Object.values(globals.status))
|
||||
};
|
||||
|
||||
private static sortKeys = [
|
||||
@ -68,7 +68,7 @@ export default class SampleValidate {
|
||||
'material.supplier',
|
||||
'material.group',
|
||||
'material.properties.*',
|
||||
'measurements.(?!spectrum\.dpt)*'
|
||||
`measurements.(?!${globals.spectrum.spectrum}.${globals.spectrum.dpt})*`
|
||||
];
|
||||
|
||||
private static fieldKeys = [
|
||||
@ -81,7 +81,7 @@ export default class SampleValidate {
|
||||
'user_id',
|
||||
'material._id',
|
||||
'material.numbers',
|
||||
'measurements.spectrum.dpt',
|
||||
`measurements.${globals.spectrum.spectrum}.${globals.spectrum.dpt}`,
|
||||
];
|
||||
|
||||
static input (data, param) { // validate input, set param to 'new' to make all attributes required
|
||||
@ -215,12 +215,12 @@ export default class SampleValidate {
|
||||
return {error: {details: [{message: 'Invalid JSON string for filter parameter'}]}, value: null}
|
||||
}
|
||||
}
|
||||
const acceptedStatuses = ['validated', 'new'];
|
||||
const acceptedStatuses = [globals.status.val, globals.status.new];
|
||||
if (dev) { // dev and admin can also access deleted samples
|
||||
acceptedStatuses.push('deleted')
|
||||
acceptedStatuses.push(globals.status.del)
|
||||
}
|
||||
return Joi.object({
|
||||
status: Joi.array().items(Joi.string().valid(...acceptedStatuses)).default(['validated']),
|
||||
status: Joi.array().items(Joi.string().valid(...acceptedStatuses)).default([globals.status.val]),
|
||||
'from-id': IdValidate.get(),
|
||||
'to-page': Joi.number().integer(),
|
||||
'page-size': Joi.number().integer().min(1),
|
||||
|
@ -21,7 +21,7 @@ export default class UserValidate { // validate input for user
|
||||
.max(128),
|
||||
|
||||
level: Joi.string()
|
||||
.valid(...globals.levels),
|
||||
.valid(...Object.values(globals.levels)),
|
||||
|
||||
location: Joi.string()
|
||||
.alphanum()
|
||||
|
Reference in New Issue
Block a user