Name
sn_hr_core.hr_BulkCaseUserSegmentGroupUtilsSNC
Description
APIs to create and update Bulk case user segment group record from REST APIs. Workaround for platform limitation to encrypt nested JSON. (Edge encryption)
Script
var hr_BulkCaseUserSegmentGroupUtilsSNC = Class.create();
hr_BulkCaseUserSegmentGroupUtilsSNC.prototype = {
initialize: function() {},
/*
* Create sn_hr_core_bulk_case_user_segment_group record by setting values
*
* @param:
* fieldValues - {fieldName:fieldValue} JSON object
* @returns:
* {sys_id:<unique-ID>} or HTTP error
*/
createUserSegmentGroup: function(fieldValues) {
var userSegGroupRecord = new GlideRecord('sn_hr_core_bulk_case_user_segment_group');
//check user access to create record
if (!userSegGroupRecord.canCreate())
return this.getHTTPError('User does not have permission to create "sn_hr_core_bulk_case_user_segment_group" record.');
//set [field:value] for GlideRecord
this.setRecordValues(userSegGroupRecord, fieldValues);
//create record
return this.validateGROperation(userSegGroupRecord.insert());
},
/*
* Update sn_hr_core_bulk_case_user_segment_group record
*
* @params:
* uniqueID - sys_id to fetch the record
* fieldValues - {fieldName:fieldValue} JSON object
* @returns:
* {sys_id:<unique-ID>} or HTTP error
*/
updateUserSegmentGroup: function(uniqueID, fieldValues) {
if (gs.nil(uniqueID))
return this.getHTTPError('Missing required unique ID for "sn_hr_core_bulk_case_user_segment_group" record.');
//check user permission to update record
var userSegGroupRecord = new GlideRecord('sn_hr_core_bulk_case_user_segment_group');
if (!userSegGroupRecord.canWrite())
return this.getHTTPError('User does not have permission to update "sn_hr_core_bulk_case_user_segment_group" record.');
//record not found
if (!userSegGroupRecord.get(uniqueID))
return this.getHTTPError('Record for "sn_hr_core_bulk_case_user_segment_group" with ID "' + uniqueID + '" not found.');
//set [field:value] for GlideRecord
this.setRecordValues(userSegGroupRecord, fieldValues);
//update record
return this.validateGROperation(userSegGroupRecord.update(gs.getMessage('Record updated by Script Include "hr_BulkCaseUserSegmentGroupUtils().updateUserSegmentGroup()"')));
},
setRecordValues: function(glideRecord, fieldValues) {
Object.keys(fieldValues).map(function(fieldName) {
var fieldValue = fieldValues[fieldName];
//store JSON.stringify for objects
if (typeof fieldValue == 'object')
glideRecord.setValue(fieldName, JSON.stringify(fieldValue));
else
glideRecord.setValue(fieldName, fieldValue);
});
},
validateGROperation: function(uniqueID) {
if (gs.nil(uniqueID)) {
var error = new sn_ws_err.ServiceError();
error.setMessage('Failed to create "sn_hr_core_bulk_case_user_segment_group" record.');
return error;
} else {
//
var userSegGroupGR = new GlideRecord('sn_hr_core_bulk_case_user_segment_group');
userSegGroupGR.get(uniqueID);
return {
sys_id: uniqueID,
revision: userSegGroupGR.getValue('revision'),
bulk_case_request: {value: userSegGroupGR.getValue('bulk_case_request')}
};
}
},
getHTTPError: function(msg) {
return new sn_ws_err.BadRequestError(msg);
},
type: 'hr_BulkCaseUserSegmentGroupUtilsSNC'
};
Sys ID
d43aa8a153833010a7f9ddeeff7b12f4