comprodls-sdk 2.20.0 → 2.21.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.
@@ -286,6 +286,7 @@ exports.AUTH_API_URLS = {
286
286
  createClass: '/org/{orgId}/classes',
287
287
  createMultipleClasses: '/org/{orgId}/classes/multi',
288
288
  specificClass: '/org/{orgId}/classes/{classId}',
289
+ cloneClass: '/org/{orgId}/classes/{classId}/clone',
289
290
 
290
291
  ClassAppdata: '/org/{orgId}/classes/{classid}/appdata',
291
292
 
@@ -3899,6 +3900,7 @@ function auth() {
3899
3900
  createClass: createClass.bind(this),
3900
3901
  updateClass: updateClass.bind(this),
3901
3902
  createMultipleClasses: createMultipleClasses.bind(this),
3903
+ cloneClass: cloneClass.bind(this),
3902
3904
  getAllClasses: getAllClasses.bind(this),
3903
3905
  getParticularClass: getParticularClass.bind(this),
3904
3906
  getParticularShadowClass: getParticularShadowClass.bind(this),
@@ -6448,6 +6450,58 @@ function deleteItemsFromShowcaseOfAClass(options){
6448
6450
  }
6449
6451
  return dfd.promise;
6450
6452
  }
6453
+
6454
+ /**
6455
+ * options = {
6456
+ * classid: 'class id of the class',
6457
+ * title: 'title of clone class',
6458
+ * startdate: 'Epoch(Unix) timestamp in milliseconds',
6459
+ * enddate: 'Epoch(Unix) timestamp in milliseconds',
6460
+ * instructor: 'user who clones the class',
6461
+ * clone_setting: {}, // Optional field
6462
+ * }
6463
+ */
6464
+ function cloneClass(options) {
6465
+ var self = this;
6466
+
6467
+ //Initializing promise
6468
+ var dfd = q.defer();
6469
+
6470
+ //Validations
6471
+ var err = helpers.validations.isAuthenticated(self.orgId, self.token);
6472
+ if(err) {
6473
+ dfd.reject(err);
6474
+ } else {
6475
+ if(options && options.title && options.startdate && options.enddate
6476
+ && options.instructor && options.classid) {
6477
+ //Passed all validations, Contruct API url
6478
+ var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.cloneClass;
6479
+ url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid });
6480
+
6481
+ //Setup request with URL and Params
6482
+ var requestAPI = request.post(url).send(options);
6483
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
6484
+
6485
+ //Setup token in Authorization header
6486
+ requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
6487
+
6488
+ requestAPI.end(function(err, response) {
6489
+ if(err) {
6490
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
6491
+ dfd.reject(err);
6492
+ } else {
6493
+ dfd.resolve(response.body);
6494
+ }
6495
+ });
6496
+ } else {
6497
+ err = {};
6498
+ err.message = err.description = 'title or startdate or enddate or instructor or classid not found in request options.';
6499
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
6500
+ dfd.reject(err);
6501
+ }
6502
+ }
6503
+ return dfd.promise;
6504
+ }
6451
6505
 
6452
6506
  },{"../../helpers":3,"../../helpers/lib/api/converter":4,"agentkeepalive":35,"q":88,"superagent":131}],17:[function(require,module,exports){
6453
6507
  /*************************************************************************