Name
sn_mab_api.ConfigKeyDAO
Description
No description available
Script
var ConfigKeyDAO = Class.create();
ConfigKeyDAO.prototype = {
initialize: function() {
this.glideRecord = new GlideRecord('sys_sg_mobile_builder_config');
this.familyVersionMap = {
'utah': 23,
'tokyo': 22,
'sandiego': 21
};
},
getFamilyVersionNumber: function() {
var sessionService = new sn_mab_api.SessionService();
var familyVersion = sessionService
.getFamilyVersion();
return this.familyVersionMap[familyVersion];
},
evaluateCompatibility: function(familyVersion, gr) {
var evaluator = new GlideScopedEvaluator();
evaluator.putVariable('FAMILY_VERSION', familyVersion);
return evaluator.evaluateScript(gr, 'compatible', null);
},
/**
*
* @param configKeys {[]}
* @return {null|*|{TreeConfigurationNode}}
*/
getTreeConfigByConfigKeys: function(configKeys) {
var gr = this.glideRecord;
gr.addQuery('config_key', 'IN', configKeys.join(','));
gr.orderByDesc('config_key');
gr.query();
if (gr.getRowCount() > 1) {
var familyVersionNumber = this.getFamilyVersionNumber();
var compatibleRecords = [];
var emptyCompatibleRecords = [];
while (gr.next()) {
var tn = new sn_mab_api.TreeConfigurationNode(gr);
if (tn.compatible && this.evaluateCompatibility(familyVersionNumber, gr)) {
compatibleRecords.push(tn);
} else if (!tn.compatible) {
emptyCompatibleRecords.push(tn);
}
}
if (compatibleRecords.length > 1) {
var versionedDuplicateConfigKey = compatibleRecords[0].configKey;
new sn_mab_api.ErrorHandler().throwBadConfigError(gs.getMessage("{0} contains overlapping versioned mobile builder configs", versionedDuplicateConfigKey));
}
if (emptyCompatibleRecords.length > 1) {
var baseDuplicateConfigKey = emptyCompatibleRecords[0].configKey;
new sn_mab_api.ErrorHandler().throwBadConfigError(gs.getMessage("{0} contains overlapping base mobile builder configs", baseDuplicateConfigKey));
}
if (compatibleRecords.length === 1) {
return compatibleRecords[0];
}
if (emptyCompatibleRecords.length === 1) {
return emptyCompatibleRecords[0];
}
}
if (gr.next())
return new sn_mab_api.TreeConfigurationNode(gr);
return null;
},
type: 'ConfigKeyDAO'
};
Sys ID
afd2b689b75620108223e126de11a994