comprodls-sdk 2.83.0-alpha → 2.86.0-alpha

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.
@@ -139,6 +139,7 @@ exports.AUTH_API_URLS = {
139
139
  getParticularShadowClassAPI: '/org/{orgId}/shadow/classes/{extClassId}',
140
140
  classProductAssociation: '/org/{orgId}/classes/{classId}/associate-product/{productcode}',
141
141
  multiClassProductAssociations: '/org/{orgId}/classes/{classId}/associate-product/multi',
142
+ classMaterialAssociation: '/org/{orgId}/classes/{classId}/associate-materials/multi',
142
143
  enrollUsertoClass: '/org/{orgId}/classes/{classId}/enroll-user/{userId}',
143
144
  enrollSelftoClass: '/org/{orgId}/classes/{classId}/enroll-self',
144
145
  enrollMultiUserstoClass: '/org/{orgId}/classes/{classId}/enroll-user/multi',
@@ -321,8 +322,7 @@ exports.PRODUCT_API_URLS = {
321
322
 
322
323
  exports.XAPI_API_URLS = {
323
324
  postMultiStatements: '/{orgId}/statements/multi',
324
- postExternalMultiStatements: '/{orgId}/external/statements/multi',
325
- resetUserProductProgress: '/accounts/{accountId}/progress/user/product/reset'
325
+ postExternalMultiStatements: '/{orgId}/external/statements/multi'
326
326
  };
327
327
 
328
328
  exports.ATTEMPTS_API_URLS = {
@@ -79,6 +79,8 @@ function auth() {
79
79
  createClassProductAssociation: createClassProductAssociation.bind(this),
80
80
  removeClassProductAssociation: removeClassProductAssociation.bind(this),
81
81
  createMultiClassProductAssociations: createMultiClassProductAssociations.bind(this),
82
+ associateMaterialsWithClass: associateMaterialsWithClass.bind(this),
83
+ unassociateMaterialsWithClass: unassociateMaterialsWithClass.bind(this),
82
84
  addItemsToShowcaseOfAClass: addItemsToShowcaseOfAClass.bind(this),
83
85
  deleteItemsFromShowcaseOfAClass: deleteItemsFromShowcaseOfAClass.bind(this),
84
86
 
@@ -1397,6 +1399,111 @@ function createClassProductAssociation(options) {
1397
1399
  return dfd.promise;
1398
1400
  }
1399
1401
 
1402
+ /**
1403
+ * @param {
1404
+ * *classId: 'string',
1405
+ * *body: {
1406
+ * productcodes: ['string'],
1407
+ * bundlecodes: ['string'],
1408
+ * }
1409
+ * } options
1410
+ */
1411
+ function associateMaterialsWithClass(options) {
1412
+ var self = this;
1413
+ // Initializing promise
1414
+ var dfd = q.defer();
1415
+ // Validations
1416
+ var err = helpers.validations.isAuthenticated(self.orgId, self.token);
1417
+ if(err) { dfd.reject(err); }
1418
+ else {
1419
+ if(options && options.classId && options.body && (options.body.productcodes
1420
+ || options.body.bundlecodes)) {
1421
+ // Passed all validations, Contruct API url
1422
+ var url = self.config.DEFAULT_HOSTS.AUTH +
1423
+ self.config.AUTH_API_URLS.classMaterialAssociation;
1424
+ url = helpers.api.constructAPIUrl(url, {
1425
+ orgId: self.orgId, classId: options.classId
1426
+ });
1427
+ // Setup request with URL and Params
1428
+ var requestAPI = request.post(url)
1429
+ .set('Content-Type', 'application/json')
1430
+ .set('Accept', 'application/json');
1431
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
1432
+
1433
+ // Setup token in Authorization header
1434
+ requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
1435
+
1436
+ requestAPI.agent(keepaliveAgent).end(function(err, response) {
1437
+ if(err) {
1438
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
1439
+ dfd.reject(err);
1440
+ }
1441
+ else { dfd.resolve(response.body); }
1442
+ });
1443
+ } else {
1444
+ err = {};
1445
+ err.message = err.description = 'classId or productcodes or bundlecodes not found in'
1446
+ + 'request options.';
1447
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
1448
+ dfd.reject(err);
1449
+ }
1450
+ }
1451
+ return dfd.promise;
1452
+ }
1453
+
1454
+ /**
1455
+ * @param {
1456
+ * *classId: string,
1457
+ * *body: {
1458
+ * 'productcodes' :['string'],
1459
+ * 'bundlecodes' : ['string']
1460
+ * }
1461
+ * } options
1462
+ */
1463
+ function unassociateMaterialsWithClass(options) {
1464
+ var self = this;
1465
+ // Initializing promise
1466
+ var dfd = q.defer();
1467
+ // Validations
1468
+ var err = helpers.validations.isAuthenticated(self.orgId, self.token);
1469
+ if(err) { dfd.reject(err); }
1470
+ else {
1471
+ if(options && options.classId && options.body &&
1472
+ (options.body.productcodes || options.body.bundlecodes)) {
1473
+ // Passed all validations, Contruct API url
1474
+ var url= self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.classMaterialAssociation;
1475
+ url = helpers.api.constructAPIUrl(url, {
1476
+ orgId: self.orgId, classId: options.classId
1477
+ });
1478
+ // Setup request with URL and Params
1479
+ var requestAPI = request.delete(url)
1480
+ .set('Content-Type', 'application/json')
1481
+ .set('Accept', 'application/json');
1482
+
1483
+ if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
1484
+
1485
+ // Setup token in Authorization header
1486
+ requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
1487
+
1488
+ requestAPI.agent(keepaliveAgent).end(function(err, response) {
1489
+ if(err) {
1490
+ err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
1491
+ dfd.reject(err);
1492
+ }
1493
+ else { dfd.resolve(response.body); }
1494
+ });
1495
+ } else {
1496
+ err = {};
1497
+ const msg = 'classId or productcodes or bundlecodes not found in request options.';
1498
+ err.message = msg;
1499
+ err.description = msg;
1500
+ err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
1501
+ dfd.reject(err);
1502
+ }
1503
+ }
1504
+ return dfd.promise;
1505
+ }
1506
+
1400
1507
  //options = {
1401
1508
  // classId: 'class uuid',
1402
1509
  // productcode: 'product code'
@@ -2088,6 +2195,14 @@ function updateClass(options) {
2088
2195
  "productcode": "string", //mandatory
2089
2196
  "title": ""
2090
2197
  }
2198
+ ],
2199
+ "bundles": [ // optional
2200
+ {
2201
+ "bundlecode": "string", //mandatory
2202
+ },
2203
+ {
2204
+ "bundlecode": "string", //mandatory
2205
+ }
2091
2206
  ]
2092
2207
  }
2093
2208
  ],
@@ -2103,6 +2218,7 @@ function updateClass(options) {
2103
2218
  "students": true,
2104
2219
  "teachers": true,
2105
2220
  "products": true,
2221
+ "bundles": true,
2106
2222
  "groups": true,
2107
2223
  "assigned_paths": true,
2108
2224
  "tags": true,
@@ -2143,6 +2259,7 @@ function updateClass(options) {
2143
2259
  }
2144
2260
  ],
2145
2261
  "products": [ { "productcode": "string" } ],
2262
+ "bundles": [ { "bundlecode": "string" } ],
2146
2263
  "analyticsharingmodel": "string" // Valid values: ['NOINHERIT_SYNCBACK']
2147
2264
  "analytics_score_aggregation_type": "string", // Valid values: ['best', 'first', 'last']
2148
2265
  "limits": {los: number, students: number} // Optional field
@@ -2369,7 +2486,12 @@ function deleteAssignedPath(options) {
2369
2486
  item_type: 'string', //mandatory, ['dls-internal','external']
2370
2487
  dls_product_code: 'string' //mandatory only if item_type is 'dls-internal'
2371
2488
  }
2372
- ]
2489
+ ],
2490
+ "rules": {}, // Optional
2491
+ "context": { // Optional (Needed for system event only)
2492
+ "bundle-code": "string",
2493
+ "space_key": "string"
2494
+ }
2373
2495
  }
2374
2496
  }
2375
2497
  */
@@ -3134,6 +3256,7 @@ function deleteItemsFromShowcaseOfAClass(options){
3134
3256
  * "students": true,
3135
3257
  * "teachers": true,
3136
3258
  * "products": true,
3259
+ * "bundles": true,
3137
3260
  * "groups": true,
3138
3261
  * "assigned_paths": true,
3139
3262
  * "skip_assigned_path_create_notification": true,
@@ -3170,6 +3293,11 @@ function deleteItemsFromShowcaseOfAClass(options){
3170
3293
  * "productcode": "string"
3171
3294
  * }
3172
3295
  * ],
3296
+ * "bundles": [
3297
+ * {
3298
+ * "bundlecode": "string"
3299
+ * }
3300
+ * ],
3173
3301
  * "analyticsharingmodel": "NOINHERIT_SYNCBACK",
3174
3302
  * "analytics_score_aggregation_type": "best",
3175
3303
  * "limits": {
@@ -724,14 +724,17 @@ function getClassesOfAGradeformat(options) {
724
724
 
725
725
  /*
726
726
  options = {
727
- assignedpathid: "string", //Mandatory
727
+ assignedpathid: "string", // Mandatory
728
728
  classid: "string", // Mandatory
729
- body : [ // min:1 , max: 50
730
- {
731
- extUserId: "string", //Mandatory
732
- }.
733
- ....
734
- ]
729
+ body : {
730
+ "users":[ // min:1 , max: 50
731
+ {
732
+ extUserId: "string", // Mandatory
733
+ }
734
+ ....
735
+ ],
736
+ "context": {} // Optional
737
+ }
735
738
  }
736
739
  */
737
740
  function createUserAssignedPathEnrollments(options) {
@@ -79,12 +79,13 @@ function _connect(pubnubCW, options) {
79
79
  'pubnub': {
80
80
  'publishKey': options.publishKey,
81
81
  'subscribeKey': options.subscribeKey,
82
- 'ssl': true
82
+ 'ssl': true,
83
+ 'suppressLeaveEvents': true
83
84
  },
84
85
  'pollingEndpoint': options.pollingEndpoint,
85
86
  'pollingIterations': options.pollingIterations || 10, // Default polling iterations is 10
86
87
  'pollingInterval': options.pollingInterval, // Default polling interval is exponential backoff
87
- });
88
+ });
88
89
  }
89
90
 
90
91
  function _cleanup(pubnubCW) { pubnubCW.cleanup(); }
@@ -538,6 +538,7 @@ function provisionBulkSpaces(options) {
538
538
  * clone_settings: {
539
539
  * *src_ext_classid: 'string',
540
540
  * products: boolean,
541
+ * bundles: boolean,
541
542
  * assigned_paths: boolean,
542
543
  * ext_assigned_path_id_rule: 'string' //enum: ['SRC_ID']
543
544
  * advanced: {
@@ -551,6 +552,9 @@ function provisionBulkSpaces(options) {
551
552
  * ],
552
553
  * products: [
553
554
  * { *productcode: 'string' },
555
+ * ],
556
+ * bundles: [
557
+ * { *bundlecode: 'string' },
554
558
  * ]
555
559
  * }
556
560
  * }
@@ -42,8 +42,7 @@ function xapi(accountId) {
42
42
  this.accountId = accountId;
43
43
  return {
44
44
  postStatement: postStatements.bind(this),
45
- postExternalStatements: postExternalStatements.bind(this),
46
- resetUserProductProgress: resetUserProductProgress.bind(this)
45
+ postExternalStatements: postExternalStatements.bind(this)
47
46
  };
48
47
  }
49
48
 
@@ -232,44 +231,3 @@ function postExternalStatements(options) {
232
231
  });
233
232
  return dfd.promise;
234
233
  }
235
-
236
- /*options = {
237
- userid: 'string',
238
- productcode: 'string',
239
- actorid: 'string'
240
- }*/
241
- function resetUserProductProgress(options) {
242
- var self = this;
243
- // Initializing promise
244
- var dfd = q.defer();
245
- var err = {};
246
- if(options && options.userid && options.productcode && options.actorid) {
247
-
248
- // Passed all validations, Contruct API url
249
- var url = self.config.DEFAULT_HOSTS.XAPI + self.config.XAPI_API_URLS.resetUserProductProgress;
250
- url = helpers.api.constructAPIUrl(url, { accountId : self.accountId });
251
-
252
- // Setup request with URL and Params
253
- var requestAPI = request.delete(url)
254
- .set('Content-Type', 'application/json')
255
- .set('Accept', 'application/json')
256
- .send(options);
257
-
258
- if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
259
-
260
- requestAPI.end(function(error, response) {
261
- if(error) {
262
- err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
263
- dfd.reject(err);
264
- }
265
- else { dfd.resolve(response.body); }
266
- });
267
- }
268
- else {
269
- err.message = err.description = 'userid, productcode or actorid not found in request options.';
270
- err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
271
- dfd.reject(err);
272
- }
273
-
274
- return dfd.promise;
275
- }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "comprodls-sdk",
3
3
  "description": "comproDLS SDK for JavaScript",
4
- "version": "2.83.0-alpha",
4
+ "version": "2.86.0-alpha",
5
5
  "author": {
6
6
  "name": "Compro Technologies Private Limited",
7
7
  "url": "http://www.comprotechnologies.com/"