Name
global.SourceRequestValidator
Description
Validates Procurement Sorce Request
Script
var SourceRequestValidator = Class.create();
SourceRequestValidator.prototype = {
initialize: function(requestData) {
this.requestData = requestData;
},
validate: function() {
var response = {status:'success'}
response['errors'] = [];
var hasError= this._validateAssignments();
if(hasError)
response['status'] = 'error';
response['reqData'] = this.requestData;
return response;
},
_validateAssignments: function() {
var response = {status:'success'}
var hasError = false;
response['errors'] = [];
for(var i=0; i<this.requestData.length; i++) {
if(!gs.nil(this.requestData[i].assignments) && this.requestData[i].assignments.length>0) {
var assignments = this.requestData[i].assignments;
for(var j=0; j<assignments.length; j++) {
assignments[j]['errors'] = {};
if(!this._validateAsgn(assignments[j])) {
var asgnType = assignments[j].asgn_type.value;
var error = {};
error['errMsg'] = gs.getMessage('The assignment does not match the license condition');
error['hasError'] = true;
assignments[j].errors[asgnType] = error;
hasError = true;
}
}
}
}
return hasError;
},
_validateAsgn: function(asgn) {
var assetUtil = new AssetUtils();
if((asgn.asgn_type.value == 'user' && !assetUtil.verifyUserEntitlement(asgn.license.sys_id, asgn.user.value))
||(asgn.asgn_type.value == 'device' && !assetUtil.verifyDeviceEntitlement(asgn.license.sys_id, asgn.device.value))) {
return false;
}
return true;
},
log: function(msg){
gs.info('[SourceRequestValidator] ' + msg)
},
type: 'SourceRequestValidator'
};
Sys ID
8ccab3d0935012003706dfa5e57ffbc3