Name

sn_analytics_api.AppseeAnalytics

Description

Contains business logic

Script

var AppseeAnalytics = Class.create();
AppseeAnalytics.prototype = {

  initialize: function(config, params) {
      this.logger = AnalyticsApiLogger.getLogger('AppseeAnalytics');
      if (!params) {
          var errMsg = 'Params not defined for the endpoint - ' + config.endpoint;
          this.logger.error(errMsg);
          throw new Error(errMsg);
      }
      var validation = this._validate(config, params);
      if (validation.status == 'FAIL') {
          errMsg = validation.message + ' for the endpoint - ' + config.endpoint;
          this.logger.error(errMsg);
          throw new Error(errMsg);
      }
      this.client = new AppseeHttpClient(config, params);
  },

  postRequest: function(payload) {
      return this.client.doPost(payload);
  },

  getRequest: function() {
      return this.client.doGet();
  },

  deleteRequest: function(payload) {
      return this.client.doDelete(payload);
  },

  putRequest: function(payload) {
      return this.client.doPut(payload);
  },

  patchRequest: function(payload) {
      return this.client.doPatch(payload);
  },

  _validate: function(config, params) {
      var paramKeys = Object.keys(params);
      return this._validateRequiredParams(config.required_params, paramKeys);

  },

  _validateRequiredParams: function(requiredParams, paramKeys) {
      for (var i = 0; i < requiredParams.length; i++) {
          var hasParam = new global.ArrayUtil().contains(paramKeys, requiredParams[i]);
          if (!hasParam) {
              return {
                  status: 'FAIL',
                  message: 'Required param not found - ' + requiredParams[i]
              };
          }
      }
      return {
          status: 'PASS',
      };
  },

  createAddSessionPayload: function(payload) {
      if (!Array.isArray(payload)) {
          var errMsg = 'Error while processing the payload, please provide list of sessions.';
          this.logger.error(errMsg);
          throw new Error(errMsg);
      }
      return {
          'sessions': payload,
      };
  },

  type: 'AppseeAnalytics'
};

Sys ID

f24d2005538020101dccddeeff7b12d8

Offical Documentation

Official Docs: