Name

sn_dependentclient.AppPluginMapDao

Description

No description available

Script

            var AppPluginMapDao = Class.create();
          AppPluginMapDao.prototype = {
              initialize: function () {
              },

              upsertAppPluginMap: function (pluginId, sourceAppId) {
                  var gr = new GlideRecord("sn_dependentclient_app_plugin_map");
                  gr.addQuery("plugin_id", pluginId);
                  gr.addQuery("application.source_app_id", sourceAppId);
                  gr.setWorkflow(false);
                  gr.query();
                  if (!gr.next()) {
                      var app = new PluginDependentApplicationDao().getApplication(sourceAppId);
                      if (app && app.sysId) {
                          gr.initialize();
                          gr.application = app.sysId;
                          gr.plugin_id = pluginId;
                          gr.current = true;
                          gr.insert();
                      }
                  } else {
                      gr.current = true;
                      gr.update();
                  }
              },

              markCurrentFalse: function (pluginList) {
                  var gr = new GlideRecord("sn_dependentclient_app_plugin_map");
                  gr.setWorkflow(false);
                  var grOR = gr.addQuery("plugin_id", pluginList[0]);
                  for(var i =1; i< pluginList.length; i++) {
                      grOR.addOrCondition("plugin_id", pluginList[i]);
                  }
                  gr.query();
                  gr.setValue('current', false);
                  gr.updateMultiple();
              },

              getMappedAppsList : function(pluginList) {
  		var result = [];
  		var gr = new GlideRecord("sn_dependentclient_app_plugin_map");
  		gr.setWorkflow(false);
  		gr.addQuery("plugin_id", "IN", pluginList);
  		gr.query();		
  		while(gr.next())
  			if(!gs.nil(gr.application.toString()))
  				result.push(gr.application.toString());
  
  		return result;
  	},

  	//delete app-plugin mapping which doesn't exist anymore
              deleteInvalidEntries: function () {
  				gs.debug("Deleting Invalid Mappings");
                  var gr = new GlideRecord("sn_dependentclient_app_plugin_map");
                  gr.addQuery("current", false);
                  gr.setWorkflow(false);
                  gr.deleteMultiple();
              },

              /*input: {
                  "pluginId1": ["sourceAppId1", "sourceAppId1"],
                  "pluginId2": ["sourceAppId3", "sourceAppId1"],
               }*/
              upsertMultiplePluginAppMapping: function (pluginAppMap) {
                  for (var plugin in pluginAppMap) {
                      var sourceAppIdList = pluginAppMap[plugin];
                      for (var i = 0; i < sourceAppIdList.length; i++) {
                          this.upsertAppPluginMap(plugin, sourceAppIdList[i]);
                      }
                  }
              },

              type: 'AppPluginMapDao'
          };
          

Sys ID

bad57e14c750030089413952f097636f

Offical Documentation

Official Docs: