Name
sn_mab_api.RecordValidator
Description
No description available
Script
var RecordValidator = Class.create();
RecordValidator.prototype = {
initialize: function() {
},
/**
*
* @param table {string}
* @param record {{}}
* @return {string|*}
*/
validate: function(table, record) {
var gr = new GlideRecordSecure(table);
gr.initialize();
for (field in record) {
try {
var element = gr.getElement(field);
var descriptor = element.getED();
var value = record[field];
} catch (error) {
return 'invalid field: ' + field;
}
var errorMessage = this.validateField(descriptor, value);
if (errorMessage)
return errorMessage;
}
},
validateField: function (descriptor, value) {
if (descriptor.getInternalType() === 'reference') {
return this.validateReferenceField(descriptor, value);
}
if (descriptor.getInternalType() === 'table_name') {
return this.validateTableNameField(descriptor, value);
}
},
validateReferenceField: function(descriptor, value) {
var referenceTable = descriptor.getReference();
if (referenceTable) {
var gr = new GlideRecordSecure(referenceTable);
if (!gr.get(value)) {
return 'invalid reference: ' + value + ' on field ' + descriptor.getName();
}
}
},
validateTableNameField: function(descriptor, value) {
if (!gs.tableExists(value)) {
return 'invalid table, ' + value;
}
},
type: 'RecordValidator'
};
Sys ID
d9f01d4eb7f320108223e126de11a902