salix/services/client/server/boot/validations.js

53 lines
1.4 KiB
JavaScript
Raw Normal View History

2017-03-14 12:08:55 +00:00
module.exports = function (server) {
function toJson(object) {
let json = {};
for(let prop in object) {
let value = object[prop];
switch(typeof value) {
case 'object':
if(value instanceof RegExp)
2017-02-01 17:55:02 +00:00
json[prop] = value.source;
break;
case 'function':
json[prop] = value.toString();
break;
default:
json[prop] = value;
}
}
return json;
}
2017-03-14 12:08:55 +00:00
server.get('/validations', function (req, res) {
let json = {};
2017-03-14 12:08:55 +00:00
let models = server.models;
for(let modelName in models) {
let model = models[modelName];
let validations = model.validations;
let jsonValidations = {};
for(let fieldName in validations) {
let jsonField = [];
for(let validation of validations[fieldName])
jsonField.push(toJson(validation));
jsonValidations[fieldName] = jsonField;
}
json[modelName] = {
properties: model.definition.rawProperties,
validations: jsonValidations
};
}
res.set('Content-Type', 'application/json');
res.send(JSON.stringify(json));
})
};