comprodls-sdk 2.75.4 → 2.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -504,7 +504,6 @@ exports.PUB_API_URLS = {
504
504
  exports.PUSHX_API_URLS = {
505
505
  grantByUserOrgId: '/orgs/{orgId}/grants',
506
506
  grantByAccountId: '/accounts/{accountId}/grants',
507
- grantV2: '/ver/v2/grants',
508
507
  getPushedEvents: '/accounts/{accountId}/pushed-events/channels'
509
508
  };
510
509
 
@@ -12828,16 +12827,15 @@ var keepaliveAgent = new Agent({
12828
12827
  * Public Function definitions
12829
12828
  **********************************/
12830
12829
  function pushX() {
12831
- var _pubnubClientWrapper = pubnubClientWrapper();
12832
- return {
12833
- "connect": _connect.bind(this, _pubnubClientWrapper),
12834
- "cleanup": _cleanup.bind(this, _pubnubClientWrapper),
12835
- "grantByUserOrgId": grantByUserOrgId.bind(this),
12836
- "grantByAccountId": grantByAccountId.bind(this),
12837
- "grantByAccountIdOnExtUserId": grantByAccountIdOnExtUserId.bind(this),
12838
- "grantV2": grantV2.bind(this),
12839
- "getPushedEvents": getPushedEvents.bind(this)
12840
- };
12830
+ var _pubnubClientWrapper = pubnubClientWrapper();
12831
+ return {
12832
+ "connect": _connect.bind(this, _pubnubClientWrapper),
12833
+ "cleanup": _cleanup.bind(this, _pubnubClientWrapper),
12834
+ "grantByUserOrgId": grantByUserOrgId.bind(this),
12835
+ "grantByAccountId": grantByAccountId.bind(this),
12836
+ "grantByAccountIdOnExtUserId": grantByAccountIdOnExtUserId.bind(this),
12837
+ "getPushedEvents": getPushedEvents.bind(this)
12838
+ };
12841
12839
  }
12842
12840
 
12843
12841
  /*********************************
@@ -12845,144 +12843,146 @@ function pushX() {
12845
12843
  **********************************/
12846
12844
 
12847
12845
  function _connect(pubnubCW, options) {
12848
- var bpubnubV7 = true; // If pubnub v7 or higher in package.json, set it true
12849
- if (bpubnubV7 && !options.userid) {
12850
- var err = {};
12851
- err.message = err.description = 'Mandatory parameter userid not found in request options.';
12852
- err = new DLSError(helpers.errors.ERROR_TYPES.PUSHX_ERROR, err);
12853
- throw err;
12854
- }
12855
-
12856
- // Adding SSL flag
12857
- return pubnubCW.setup({
12858
- 'userid': options.userid,
12859
- 'accountid': options.accountid,
12860
- 'token': options.token,
12861
- 'pubnub': {
12862
- 'publishKey': options.publishKey,
12863
- 'subscribeKey': options.subscribeKey,
12864
- 'ssl': true
12865
- }
12866
- });
12846
+ var bpubnubV7 = true; // If pubnub v7 or higher in package.json, set it true
12847
+ if (bpubnubV7 && !options.userid) {
12848
+ var err = {};
12849
+ err.message = err.description = 'Mandatory parameter userid not found in request options.';
12850
+ err = new DLSError(helpers.errors.ERROR_TYPES.PUSHX_ERROR, err);
12851
+ throw err;
12852
+ }
12853
+
12854
+ // Adding SSL flag
12855
+ return pubnubCW.setup({
12856
+ 'userid': options.userid,
12857
+ 'accountid': options.accountid,
12858
+ 'pubnub': {
12859
+ 'publishKey': options.publishKey,
12860
+ 'subscribeKey': options.subscribeKey,
12861
+ 'authKey': options.authKey,
12862
+ 'ssl': true
12863
+ }
12864
+ });
12867
12865
  }
12868
12866
 
12869
12867
  function _cleanup(pubnubCW) { pubnubCW.cleanup(); }
12870
12868
 
12871
- /*options = {}*/
12869
+ /*options = {
12870
+ authKey: <authKey>
12871
+ }*/
12872
12872
  function grantByUserOrgId(options) {
12873
- var dfd = q.defer(); // Initializing promise
12874
- var allowedChannels = ['jobs', 'systemevents'];
12875
- var baseChannelName = "o-" + this.orgId + "\\$u-" + this.token.access_token + "\\$";
12876
- var patterns = [];
12877
- for(var i in allowedChannels) {
12878
- var channelName = baseChannelName + allowedChannels[i] + "\\..*";
12879
- patterns.push(channelName);
12880
- }
12881
- options.channels = {};
12882
- options.channels.patterns = patterns;
12883
- grantV2.call(this, options)
12884
- .then(function (res) {
12885
- dfd.resolve(res);
12886
- })
12887
- .catch(function(err) {
12888
- dfd.reject(err);
12889
- });
12890
- return dfd.promise;
12873
+ var self = this;
12874
+ var dfd = q.defer(); // Initializing promise
12875
+ // Validations
12876
+ var err = helpers.validations.isAuthenticated(self.orgId, self.token);
12877
+ if(err) { dfd.reject(err); }
12878
+ else {
12879
+ // Passed all validations, Construct API url
12880
+ var url = self.config.DEFAULT_HOSTS.PUSHX + self.config.PUSHX_API_URLS.grantByUserOrgId;
12881
+ url = helpers.api.constructAPIUrl(url, { orgId: self.orgId });
12882
+ // Setup request with URL and Params
12883
+ var requestAPI = request.post(url)
12884
+ .set('Content-Type', 'application/json')
12885
+ .set('Accept', 'application/json');
12886
+
12887
+ var body = {};
12888
+ if(options.authKey) { body.authKey = options.authKey; }
12889
+
12890
+ requestAPI.send(body);
12891
+
12892
+ //Setup token in Authorization header
12893
+ requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
12894
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
12895
+
12896
+ // Call Change Password Api
12897
+ requestAPI.end(function(err, response) {
12898
+ if(err) {
12899
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
12900
+ dfd.reject(err);
12901
+ }
12902
+ else { dfd.resolve(response.body); }
12903
+ });
12904
+ }
12905
+ return dfd.promise;
12891
12906
  }
12892
12907
 
12893
12908
  /*options = {
12894
12909
  accountId: <accountid>,
12895
- refId: <extRefId>
12910
+ refId: <extRefId>,
12911
+ authKey: <authKey>
12896
12912
  }*/
12897
12913
  function grantByAccountId(options) {
12898
- var err ={};
12899
- var dfd = q.defer(); // Initializing promise
12914
+ var self = this, err ={};
12915
+ var dfd = q.defer(); // Initializing promise
12900
12916
 
12901
- if(options.accountId && options.refId) {
12902
- var channel = "a-" + options.accountId + "$refid." + options.refId;
12903
- var exactMatch = [channel];
12904
- options.channels = {};
12905
- options.channels.exactMatch = exactMatch;
12906
- grantV2.call(this, options)
12907
- .then(function (res) {
12908
- dfd.resolve(res);
12909
- })
12910
- .catch(function(err) {
12911
- dfd.reject(err);
12912
- });
12913
- }
12914
- else {
12915
- err.message = err.description = "Required parameter ['accountId', 'refId'] " +
12916
- "not found in request options";
12917
- err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12918
- dfd.reject(err);
12919
- }
12920
- return dfd.promise;
12917
+ if(options.accountId && options.refId) {
12918
+ // Passed all validations, Construct API url
12919
+ var url = self.config.DEFAULT_HOSTS.PUSHX + self.config.PUSHX_API_URLS.grantByAccountId;
12920
+ url = helpers.api.constructAPIUrl(url, { accountId: options.accountId });
12921
+ // Setup request with URL and Params
12922
+ var requestAPI = request.post(url)
12923
+ .set('Content-Type', 'application/json')
12924
+ .set('Accept', 'application/json');
12925
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
12926
+
12927
+ var body = { refId: options.refId };
12928
+ if(options.authKey) { body.authKey = options.authKey; }
12929
+
12930
+ requestAPI.send(body);
12931
+ requestAPI.end(function(err, response) {
12932
+ if(err) {
12933
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
12934
+ dfd.reject(err);
12935
+ }
12936
+ else { dfd.resolve(response.body); }
12937
+ });
12938
+ }
12939
+ else {
12940
+ err.message = err.description = "Required parameter ['accountId', 'refId'] " +
12941
+ "not found in request options";
12942
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12943
+ dfd.reject(err);
12944
+ }
12945
+ return dfd.promise;
12921
12946
  }
12922
12947
 
12923
12948
  /*options = {
12924
12949
  accountId: <accountid>,
12925
12950
  extUserId: <extUserId>, //mandatory
12951
+ authKey: <authKey>
12926
12952
  }*/
12927
12953
  function grantByAccountIdOnExtUserId(options) {
12928
- var err ={};
12929
- var dfd = q.defer(); // Initializing promise
12954
+ var self = this, err ={};
12955
+ var dfd = q.defer(); // Initializing promise
12930
12956
 
12931
- if(options.accountId && options.extUserId) {
12932
- var channel = "a-" + options.accountId + "$u-" + options.extUserId;
12933
- var exactMatch = [channel];
12934
- options.channels = {};
12935
- options.channels.exactMatch = exactMatch;
12936
- grantV2.call(this, options)
12937
- .then(function (res) {
12938
- dfd.resolve(res);
12939
- })
12940
- .catch(function(err) {
12941
- dfd.reject(err);
12942
- });
12943
- }
12944
- else {
12945
- err.message = err.description = "Required parameter ['accountId', 'extUserId'] " +
12946
- "not found in request options";
12947
- err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12948
- dfd.reject(err);
12949
- }
12950
- return dfd.promise;
12951
- }
12957
+ if(options.accountId && options.extUserId) {
12958
+ // Passed all validations, Construct API url
12959
+ var url = self.config.DEFAULT_HOSTS.PUSHX + self.config.PUSHX_API_URLS.grantByAccountId;
12960
+ url = helpers.api.constructAPIUrl(url, { accountId: options.accountId });
12961
+ // Setup request with URL and Params
12962
+ var requestAPI = request.post(url)
12963
+ .set('Content-Type', 'application/json')
12964
+ .set('Accept', 'application/json');
12965
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
12952
12966
 
12953
- /**
12954
- * This function provides grant token on given channels
12955
- * @param { channels: { exactMatch: [], patterns: [] } } options
12956
- * @returns { token, publishKey, subscribeKey }
12957
- */
12958
- function grantV2(options) {
12959
- var self = this, err = {};
12960
- var dfd = q.defer();
12961
- var body = { channels: {} };
12962
- if(!options.channels) {
12963
- err.message = err.description = "channels not given in input body.";
12964
- err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12965
- dfd.reject(err);
12966
- return dfd.promise;
12967
- }
12968
- body.channels = options.channels;
12969
- // Passed all validations, Construct API url
12970
- var url = self.config.DEFAULT_HOSTS.PUSHX + self.config.PUSHX_API_URLS.grantV2;
12971
- // Setup request with URL and Params
12972
- var requestAPI = request.post(url)
12973
- .set('Content-Type', 'application/json')
12974
- .set('Accept', 'application/json');
12975
- if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
12967
+ var body = { extUserId: options.extUserId };
12968
+ if(options.authKey) { body.authKey = options.authKey; }
12976
12969
 
12977
- requestAPI.send(body);
12978
- requestAPI.end(function(err, response) {
12979
- if(err) {
12980
- err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
12981
- dfd.reject(err);
12970
+ requestAPI.send(body);
12971
+ requestAPI.end(function(err, response) {
12972
+ if(err) {
12973
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
12974
+ dfd.reject(err);
12975
+ }
12976
+ else { dfd.resolve(response.body); }
12977
+ });
12982
12978
  }
12983
- else { dfd.resolve(response.body); }
12984
- });
12985
- return dfd.promise;
12979
+ else {
12980
+ err.message = err.description = "Required parameter ['accountId', 'extUserId'] " +
12981
+ "not found in request options";
12982
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12983
+ dfd.reject(err);
12984
+ }
12985
+ return dfd.promise;
12986
12986
  }
12987
12987
 
12988
12988
  /**
@@ -13056,6 +13056,7 @@ module.exports = function () {
13056
13056
  var _globalSubscription = [];
13057
13057
  var _globalSubscriptionStatus = {};
13058
13058
  var bStatusSubscribed = false;
13059
+ var bPollingInitiated = false;
13059
13060
 
13060
13061
  /** ###### END OF MODULE GLOBALS */
13061
13062
 
@@ -13112,6 +13113,10 @@ module.exports = function () {
13112
13113
 
13113
13114
  var _translatePubnubStatus = function(status, options) {
13114
13115
  var channels = [], error, successObj;
13116
+
13117
+ // If polling has been initiated, ignore all punnub status
13118
+ if (bPollingInitiated) return;
13119
+
13115
13120
  switch (status.category) {
13116
13121
  case "PNConnectedCategory":
13117
13122
  if(status.operation === "PNSubscribeOperation") {
@@ -13139,10 +13144,8 @@ module.exports = function () {
13139
13144
  break;
13140
13145
  case "PNAccessDeniedCategory":
13141
13146
  if(status.operation === "PNSubscribeOperation") {
13142
- var errorText = status.errorData.response && status.errorData.response.text;
13143
- var errorJSON = errorText ? JSON.parse(errorText) : undefined;
13144
13147
  var errorData = {
13145
- payload: errorJSON && errorJSON.payload || status.errorData.payload,
13148
+ payload: JSON.parse(status.errorData.response.text).payload,
13146
13149
  message: 'Forbidden: Subscription failed.',
13147
13150
  errorDetails: {
13148
13151
  operation: status.operation,
@@ -13191,6 +13194,7 @@ module.exports = function () {
13191
13194
  * The wrapper supports multiple channels, but the APP currently uses a single channel only.
13192
13195
  * Polling will also limited to a single channel.
13193
13196
  */
13197
+ bPollingInitiated = true;
13194
13198
  }
13195
13199
  }
13196
13200
  else {
@@ -13245,11 +13249,9 @@ module.exports = function () {
13245
13249
  var pubnubConfig = userOptions.pubnub;
13246
13250
  pubnubConfig.uuid = userOptions.userid;
13247
13251
  var accountId = userOptions.accountid;
13248
- var token = userOptions.token;
13249
13252
 
13250
13253
  if (!_pubnubClient && pubnubConfig) {
13251
13254
  _pubnubClient = new pubNub(pubnubConfig); //Connect with PubNub SDK
13252
- _pubnubClient.setToken(token);
13253
13255
  processSetup();
13254
13256
  } else {
13255
13257
  return new Error('Already Initialized');
@@ -13280,6 +13282,7 @@ module.exports = function () {
13280
13282
  _globalSubscription = [];
13281
13283
  bStatusSubscribed = false;
13282
13284
  _globalSubscriptionStatus = {};
13285
+ bPollingInitiated = false;
13283
13286
  }
13284
13287
  _pubnubClient = undefined;
13285
13288
  };
@@ -14289,6 +14292,7 @@ function provisionBulkSpaces(options) {
14289
14292
  * *startdate: <epoch>,
14290
14293
  * *enddate: <epoch>,
14291
14294
  * description: 'string',
14295
+ * ext_class_title: 'string',
14292
14296
  * ext_data: {},
14293
14297
  * limits: {
14294
14298
  * *los: 0,