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

Offical Documentation

Official Docs: