comprodls-sdk 2.74.0 → 2.75.0

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,6 +504,7 @@ 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',
507
508
  getPushedEvents: '/accounts/{accountId}/pushed-events/channels'
508
509
  };
509
510
 
@@ -12827,15 +12828,16 @@ var keepaliveAgent = new Agent({
12827
12828
  * Public Function definitions
12828
12829
  **********************************/
12829
12830
  function pushX() {
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
- };
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
+ };
12839
12841
  }
12840
12842
 
12841
12843
  /*********************************
@@ -12843,146 +12845,146 @@ function pushX() {
12843
12845
  **********************************/
12844
12846
 
12845
12847
  function _connect(pubnubCW, options) {
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
- });
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
+ });
12865
12867
  }
12866
12868
 
12867
12869
  function _cleanup(pubnubCW) { pubnubCW.cleanup(); }
12868
12870
 
12869
12871
  /*options = {
12870
- authKey: <authKey>
12872
+ orgId: <orgId>, userId: <userId>
12871
12873
  }*/
12872
12874
  function grantByUserOrgId(options) {
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;
12875
+ var dfd = q.defer(); // Initializing promise
12876
+ var allowedChannels = ['jobs', 'systemevents'];
12877
+ var baseChannelName = "o-" + options.orgId + "\\$u-" + options.userId + "\\$";
12878
+ var patterns = [];
12879
+ for(var i in allowedChannels) {
12880
+ var channelName = baseChannelName + allowedChannels[i] + "\\..*";
12881
+ patterns.push(channelName);
12882
+ }
12883
+ options.channels = {};
12884
+ options.channels.patterns = patterns;
12885
+ grantV2.call(this, options)
12886
+ .then(function (res) {
12887
+ dfd.resolve(res);
12888
+ })
12889
+ .catch(function(err) {
12890
+ dfd.reject(err);
12891
+ });
12892
+ return dfd.promise;
12906
12893
  }
12907
12894
 
12908
12895
  /*options = {
12909
12896
  accountId: <accountid>,
12910
- refId: <extRefId>,
12911
- authKey: <authKey>
12897
+ refId: <extRefId>
12912
12898
  }*/
12913
12899
  function grantByAccountId(options) {
12914
- var self = this, err ={};
12915
- var dfd = q.defer(); // Initializing promise
12916
-
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; }
12900
+ var err ={};
12901
+ var dfd = q.defer(); // Initializing promise
12929
12902
 
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;
12903
+ if(options.accountId && options.refId) {
12904
+ var channel = "a-" + options.accountId + "$refid." + options.refId;
12905
+ var exactMatch = [channel];
12906
+ options.channels = {};
12907
+ options.channels.exactMatch = exactMatch;
12908
+ grantV2.call(this, options)
12909
+ .then(function (res) {
12910
+ dfd.resolve(res);
12911
+ })
12912
+ .catch(function(err) {
12913
+ dfd.reject(err);
12914
+ });
12915
+ }
12916
+ else {
12917
+ err.message = err.description = "Required parameter ['accountId', 'refId'] " +
12918
+ "not found in request options";
12919
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12920
+ dfd.reject(err);
12921
+ }
12922
+ return dfd.promise;
12946
12923
  }
12947
12924
 
12948
12925
  /*options = {
12949
12926
  accountId: <accountid>,
12950
12927
  extUserId: <extUserId>, //mandatory
12951
- authKey: <authKey>
12952
12928
  }*/
12953
12929
  function grantByAccountIdOnExtUserId(options) {
12954
- var self = this, err ={};
12955
- var dfd = q.defer(); // Initializing promise
12930
+ var err ={};
12931
+ var dfd = q.defer(); // Initializing promise
12956
12932
 
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); }
12933
+ if(options.accountId && options.extUserId) {
12934
+ var channel = "a-" + options.accountId + "$u-" + options.extUserId;
12935
+ var exactMatch = [channel];
12936
+ options.channels = {};
12937
+ options.channels.exactMatch = exactMatch;
12938
+ grantV2.call(this, options)
12939
+ .then(function (res) {
12940
+ dfd.resolve(res);
12941
+ })
12942
+ .catch(function(err) {
12943
+ dfd.reject(err);
12944
+ });
12945
+ }
12946
+ else {
12947
+ err.message = err.description = "Required parameter ['accountId', 'extUserId'] " +
12948
+ "not found in request options";
12949
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12950
+ dfd.reject(err);
12951
+ }
12952
+ return dfd.promise;
12953
+ }
12966
12954
 
12967
- var body = { extUserId: options.extUserId };
12968
- if(options.authKey) { body.authKey = options.authKey; }
12955
+ /**
12956
+ * This function provides grant token on given channels
12957
+ * @param { channels: { exactMatch: [], patterns: [] } } options
12958
+ * @returns { token, publishKey, subscribeKey }
12959
+ */
12960
+ function grantV2(options) {
12961
+ var self = this, err = {};
12962
+ var dfd = q.defer();
12963
+ var body = { channels: {} };
12964
+ if(!options.channels) {
12965
+ err.message = err.description = "channels not given in input body.";
12966
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
12967
+ dfd.reject(err);
12968
+ return dfd.promise;
12969
+ }
12970
+ body.channels = options.channels;
12971
+ // Passed all validations, Construct API url
12972
+ var url = self.config.DEFAULT_HOSTS.PUSHX + self.config.PUSHX_API_URLS.grantV2;
12973
+ // Setup request with URL and Params
12974
+ var requestAPI = request.post(url)
12975
+ .set('Content-Type', 'application/json')
12976
+ .set('Accept', 'application/json');
12977
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
12969
12978
 
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
- });
12978
- }
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);
12979
+ requestAPI.send(body);
12980
+ requestAPI.end(function(err, response) {
12981
+ if(err) {
12982
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
12983
+ dfd.reject(err);
12984
12984
  }
12985
- return dfd.promise;
12985
+ else { dfd.resolve(response.body); }
12986
+ });
12987
+ return dfd.promise;
12986
12988
  }
12987
12989
 
12988
12990
  /**
@@ -13139,8 +13141,10 @@ module.exports = function () {
13139
13141
  break;
13140
13142
  case "PNAccessDeniedCategory":
13141
13143
  if(status.operation === "PNSubscribeOperation") {
13144
+ var errorText = status.errorData.response && status.errorData.response.text;
13145
+ var errorJSON = errorText ? JSON.parse(errorText) : undefined;
13142
13146
  var errorData = {
13143
- payload: JSON.parse(status.errorData.response.text).payload,
13147
+ payload: errorJSON && errorJSON.payload || status.errorData.payload,
13144
13148
  message: 'Forbidden: Subscription failed.',
13145
13149
  errorDetails: {
13146
13150
  operation: status.operation,
@@ -13242,10 +13246,12 @@ module.exports = function () {
13242
13246
  var __setup = function (userOptions) {
13243
13247
  var pubnubConfig = userOptions.pubnub;
13244
13248
  pubnubConfig.uuid = userOptions.userid;
13245
- accountId = userOptions.accountid
13249
+ var accountId = userOptions.accountid;
13250
+ var token = userOptions.token;
13246
13251
 
13247
13252
  if (!_pubnubClient && pubnubConfig) {
13248
13253
  _pubnubClient = new pubNub(pubnubConfig); //Connect with PubNub SDK
13254
+ _pubnubClient.setToken(token);
13249
13255
  processSetup();
13250
13256
  } else {
13251
13257
  return new Error('Already Initialized');