Name
sn_capi.CAPIActionFactory
Description
No description available
Script
var CAPIActionFactory = Class.create();
CAPIActionFactory.getNamespaceObject = function(nmsp){
gs.info('CAPIActionFactory: nmsp-->' + nmsp);
if(nmsp === "sn_cloud_api"){
return sn_cloud_api || null;
}
if(nmsp === "global"){
return global || null;
}
return null;
};
CAPIActionFactory.create = function(namespace, actionName) {
var result = null;
gs.info('CAPIActionFactory: namespace-->' + namespace);
gs.info('CAPIActionFactory: actionName-->' + actionName);
try {
if(!isCurrentScope(namespace)) {
var namespaceObj = CAPIActionFactory.getNamespaceObject(namespace);
gs.info('CAPIActionFactory: namespaceObj-->' + namespaceObj);
/* eslint-disable no-undef */
result = ActionFactory.create(actionName);
gs.info('CAPIActionFactory: result-->' + result);
/* eslint-enable no-undef */
//action cannot present without actionGr, but not vice versa
if(!gs.nil(result) && !gs.nil(result.actionGr)) {
if(!gs.nil(result.action)) {
//Overriddent action
return result;
}
}
}
//Look for base action and/or pre-post actions record
result = result || {};
var baseActionGr = CAPIUtils.queryMappingTable('capi_action_mapping', actionName, true);
baseActionGr.next();
if(gs.nil(result.actionGr)) {
result.actionGr = baseActionGr;
}
var actionScriptName = baseActionGr.getValue('script_name');
gs.info('CAPIActionFactory: actionScriptName-->' + actionScriptName);
/* eslint-disable no-undef */
result.action = new sn_cloud_api[actionScriptName]();
gs.info('CAPIActionFactory: result.action-->' + result.action);
/* eslint-enable no-undef */
if(gs.nil(result.actionGr))
return null;
gs.info('CAPIActionFactory: result.actionGr-->' + result.actionGr);
return result;
} catch(err) {
gs.info('CAPIActionFactory: Error-->' + err);
return null;
}
function isCurrentScope(namespace) {
gs.info('CAPIActionFactory: namespace-->' + namespace);
gs.info('CAPIActionFactory: gs.getCurrentScopeName()-->' + gs.getCurrentScopeName());
return namespace == gs.getCurrentScopeName();
}
};
Sys ID
dfb31ecb0b943200a91f6707b6673aba