Name

sn_entitlement.SubscriptionEntitlementsService

Description

Provides information about subscriptions

Script

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

  /**
   * Return information about all active subscriptions
   * @return {array} an array of SubscriptionEntitlementData
   */
  getActiveSubscriptions: function() {
  	return this._decorateWithURL(new LicenseDetailDaoV1().getLicenseDetailsByAllActive());
  },

  /**
   * Return information about active subscriptions which contain specified app bundles
   * @param {array} appBundles names of app bundles
   * @return {array} an array of SubscriptionEntitlementData
   */
  getSubscriptionsWithAppBundles: function(appBundles) {
      if (this._shouldUseNewSchema())
  		return this._decorateWithURL(new SubscriptionEntitlementDao().getSubcriptionEntitlementsByContainsAppBundles(appBundles), "subscription_entitlement");
  	else
  		return this._decorateWithURL(new LicenseDetailDaoV1().getLicenseDetailsByContainsAppBundles(appBundles), "license_details");
  },

  _decorateWithURL: function(subscriptions, entitlementTableName) {
  	subscriptions.forEach(record => record.details_url = entitlementTableName + '?sys_id=' + record.id);
  },

  _shouldUseNewSchema: function() {
  	const surfRouting = gs.getProperty('glide.entitlement.surf.routing', true).toLowerCase() === 'true';
      const emsDataAvailable = gs.getProperty('glide.entitlement.ems.data.available', false).toLowerCase() === 'true';
      return !surfRouting && emsDataAvailable;
  },
  type: 'SubscriptionEntitlementsService'
};

Sys ID

27188a5a53f9e110abeaddeeff7b12a4

Offical Documentation

Official Docs: