comprodls-sdk 2.12.0 → 2.12.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.
- package/.eslintrc +28 -28
- package/.npmignore +5 -0
- package/README.md +371 -371
- package/dist/comprodls-sdk.js +11493 -11471
- package/dist/comprodls-sdk.min.js +14 -14
- package/grunt/publish.js +148 -148
- package/lib/comprodls.js +146 -146
- package/lib/config/index.js +337 -337
- package/lib/helpers/index.js +29 -29
- package/lib/helpers/lib/api/converter.js +119 -119
- package/lib/helpers/lib/api/index.js +120 -120
- package/lib/helpers/lib/api/validations.js +72 -72
- package/lib/helpers/lib/errors.js +129 -129
- package/lib/helpers/lib/utils.js +23 -23
- package/lib/helpers/lib/validator.js +100 -100
- package/lib/open_access/index.js +121 -121
- package/lib/services/activity/activity.js +209 -209
- package/lib/services/activity/attempt.js +431 -431
- package/lib/services/activity/index.js +28 -28
- package/lib/services/analytics/index.js +1555 -1555
- package/lib/services/attempts/index.js +342 -342
- package/lib/services/auth/classProduct.js +37 -37
- package/lib/services/auth/index.js +2541 -2541
- package/lib/services/collab/index.js +468 -468
- package/lib/services/drive/index.js +144 -144
- package/lib/services/integrations/index.js +279 -279
- package/lib/services/invitations/index.js +313 -313
- package/lib/services/lrs/index.js +459 -459
- package/lib/services/product/index.js +267 -267
- package/lib/services/pub/index.js +407 -407
- package/lib/services/push/index.js +187 -187
- package/lib/services/push/pubnubClientWrapper.js +557 -557
- package/lib/services/push/sessionStorage.js +64 -64
- package/lib/services/pushX/index.js +190 -190
- package/lib/services/pushX/pubnubClientWrapper.js +211 -211
- package/lib/services/sisevents/index.js +113 -113
- package/lib/services/spaces/index.js +976 -929
- package/lib/services/superuser/index.js +175 -175
- package/lib/services/workflows/index.js +464 -464
- package/lib/services/xapi/index.js +232 -232
- package/lib/token/index.js +114 -114
- package/lib/token/validations.js +88 -88
- package/package-lock.json +5095 -0
- package/package.json +1 -1
- package/test.js +50 -50
- package/.vscode/launch.json +0 -23
- package/npm-debug.log.189866131 +0 -0
- package/npm-debug.log.712840116 +0 -26
|
@@ -1,2541 +1,2541 @@
|
|
|
1
|
-
/*************************************************************************
|
|
2
|
-
*
|
|
3
|
-
* COMPRO CONFIDENTIAL
|
|
4
|
-
* __________________
|
|
5
|
-
*
|
|
6
|
-
* [2015] - [2020] Compro Technologies Private Limited
|
|
7
|
-
* All Rights Reserved.
|
|
8
|
-
*
|
|
9
|
-
* NOTICE: All information contained herein is, and remains
|
|
10
|
-
* the property of Compro Technologies Private Limited. The
|
|
11
|
-
* intellectual and technical concepts contained herein are
|
|
12
|
-
* proprietary to Compro Technologies Private Limited and may
|
|
13
|
-
* be covered by U.S. and Foreign Patents, patents in process,
|
|
14
|
-
* and are protected by trade secret or copyright law.
|
|
15
|
-
*
|
|
16
|
-
* Dissemination of this information or reproduction of this material
|
|
17
|
-
* is strictly forbidden unless prior written permission is obtained
|
|
18
|
-
* from Compro Technologies Pvt. Ltd..
|
|
19
|
-
***************************************************************************/
|
|
20
|
-
|
|
21
|
-
/***********************************************************
|
|
22
|
-
* comproDLS SDK AUTH API Adaptor
|
|
23
|
-
* Functions for calling AUTH API.
|
|
24
|
-
************************************************************/
|
|
25
|
-
|
|
26
|
-
var q = require('q');
|
|
27
|
-
var request = require('superagent');
|
|
28
|
-
|
|
29
|
-
var helpers = require('../../helpers');
|
|
30
|
-
var converter = require('../../helpers/lib/api/converter');
|
|
31
|
-
|
|
32
|
-
var DLSError = helpers.errors.DLSError;
|
|
33
|
-
|
|
34
|
-
/*********************************
|
|
35
|
-
* Setting Up Module Entry Point
|
|
36
|
-
**********************************/
|
|
37
|
-
module.exports = auth;
|
|
38
|
-
//Auth Adaptor Contsructor
|
|
39
|
-
function auth() {
|
|
40
|
-
return {
|
|
41
|
-
pisImport: pisImport.bind(this),
|
|
42
|
-
|
|
43
|
-
getAllUsers: getAllUsers.bind(this),
|
|
44
|
-
getUserProfile: getUserProfile.bind(this),
|
|
45
|
-
deleteUserProfile: deleteUserProfile.bind(this),
|
|
46
|
-
updateUserRole: updateUserRole.bind(this),
|
|
47
|
-
getUserClasses: getUserClasses.bind(this),
|
|
48
|
-
getClassUsers: getClassUsers.bind(this),
|
|
49
|
-
enrollUsertoClass: enrollUsertoClass.bind(this),
|
|
50
|
-
enrollSelftoClass: enrollSelftoClass.bind(this),
|
|
51
|
-
enrollMultiUserstoClass: enrollMultiUserstoClass.bind(this),
|
|
52
|
-
unEnrollMultiUserstoClass: unEnrollMultiUserstoClass.bind(this),
|
|
53
|
-
unEnrollUsertoClass: unEnrollUsertoClass.bind(this),
|
|
54
|
-
|
|
55
|
-
getOrgSettings: getOrgSettings.bind(this),
|
|
56
|
-
updateOrgSettings: updateOrgSettings.bind(this),
|
|
57
|
-
generateClassCode: generateClassCode.bind(this),
|
|
58
|
-
|
|
59
|
-
getAllJobs: getAllJobs.bind(this),
|
|
60
|
-
getJob: getJob.bind(this),
|
|
61
|
-
|
|
62
|
-
createClass: createClass.bind(this),
|
|
63
|
-
updateClass: updateClass.bind(this),
|
|
64
|
-
createMultipleClasses: createMultipleClasses.bind(this),
|
|
65
|
-
getAllClasses: getAllClasses.bind(this),
|
|
66
|
-
getParticularClass: getParticularClass.bind(this),
|
|
67
|
-
getParticularShadowClass: getParticularShadowClass.bind(this),
|
|
68
|
-
createClassProductAssociation: createClassProductAssociation.bind(this),
|
|
69
|
-
removeClassProductAssociation: removeClassProductAssociation.bind(this),
|
|
70
|
-
addItemsToShowcaseOfAClass: addItemsToShowcaseOfAClass.bind(this),
|
|
71
|
-
deleteItemsFromShowcaseOfAClass: deleteItemsFromShowcaseOfAClass.bind(this),
|
|
72
|
-
|
|
73
|
-
getClassAppdata: getClassAppdata.bind(this),
|
|
74
|
-
putClassAppdata: putClassAppdata.bind(this),
|
|
75
|
-
deleteClassAppdata: deleteClassAppdata.bind(this),
|
|
76
|
-
|
|
77
|
-
encodeURLParameter: encodeURLParameter.bind(this),
|
|
78
|
-
|
|
79
|
-
createAssignedPath: createAssignedPath.bind(this),
|
|
80
|
-
deleteAssignedPath: deleteAssignedPath.bind(this),
|
|
81
|
-
updateAssignedPath: updateAssignedPath.bind(this),
|
|
82
|
-
|
|
83
|
-
//Groups related APIs
|
|
84
|
-
createGroup: createGroup.bind(this),
|
|
85
|
-
getAllGroupsByPath: getAllGroupsByPath.bind(this),
|
|
86
|
-
getAGroup: getAGroup.bind(this),
|
|
87
|
-
updateGroup: updateGroup.bind(this),
|
|
88
|
-
deleteGroup: deleteGroup.bind(this),
|
|
89
|
-
getAllMembersOfAGroup: getAllMembersOfAGroup.bind(this),
|
|
90
|
-
getAllGroupMembersByPath: getAllGroupMembersByPath.bind(this),
|
|
91
|
-
createMultiUserGroupMembership: createMultiUserGroupMembership.bind(this),
|
|
92
|
-
deleteMultiUserGroupMembership: deleteMultiUserGroupMembership.bind(this),
|
|
93
|
-
getMyAllMemberships: getMyAllMemberships.bind(this),
|
|
94
|
-
archiveGroup: archiveGroup.bind(this),
|
|
95
|
-
unarchiveGroup: unarchiveGroup.bind(this)
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/*********************************
|
|
100
|
-
* Public Function definitions
|
|
101
|
-
**********************************/
|
|
102
|
-
|
|
103
|
-
//options = {
|
|
104
|
-
// userid: 'uuid or username', //optional.
|
|
105
|
-
//}
|
|
106
|
-
function getUserProfile(options) {
|
|
107
|
-
/* Reference to comproDLS SDK object , contains the following properties
|
|
108
|
-
* 1. self.orgId [String] : organization Id
|
|
109
|
-
* 2. self.token [Object] : DLS token. It has following structure
|
|
110
|
-
* {
|
|
111
|
-
* "access_token" : [String]
|
|
112
|
-
* }
|
|
113
|
-
*/
|
|
114
|
-
var self = this;
|
|
115
|
-
// Initializing promise
|
|
116
|
-
var dfd = q.defer();
|
|
117
|
-
// Validations
|
|
118
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
119
|
-
if(err) { dfd.reject(err); }
|
|
120
|
-
else {
|
|
121
|
-
var userid = 'me';
|
|
122
|
-
if(options) {
|
|
123
|
-
if(options.userid) { userid = options.userid; }
|
|
124
|
-
}
|
|
125
|
-
// Passed all validations, Contruct API url
|
|
126
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
127
|
-
self.config.AUTH_API_URLS.userInfoAPI;
|
|
128
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, userId: userid });
|
|
129
|
-
|
|
130
|
-
// Contruct parameters
|
|
131
|
-
var params = {};
|
|
132
|
-
|
|
133
|
-
// Setup request with URL and Params
|
|
134
|
-
var requestAPI = request.get(url).query(params);
|
|
135
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
136
|
-
|
|
137
|
-
// Setup token in Authorization header
|
|
138
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
139
|
-
// Call GET USER INFO Api
|
|
140
|
-
requestAPI.end(function(err, response) {
|
|
141
|
-
if(err) {
|
|
142
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
143
|
-
dfd.reject(err);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
var res = converter.convertUserResponse({data: response.body});
|
|
147
|
-
dfd.resolve(res);
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
return dfd.promise;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* options = {
|
|
156
|
-
* userid : "" // dls user id, mandatory
|
|
157
|
-
* }
|
|
158
|
-
*/
|
|
159
|
-
|
|
160
|
-
function deleteUserProfile(options) {
|
|
161
|
-
var self = this;
|
|
162
|
-
var dfd = q.defer();
|
|
163
|
-
|
|
164
|
-
// Validations
|
|
165
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
166
|
-
if(err) { dfd.reject(err); }
|
|
167
|
-
else {
|
|
168
|
-
if (options.userid) {
|
|
169
|
-
var userid = options.userid;
|
|
170
|
-
|
|
171
|
-
// Passed all validations, Contruct API url
|
|
172
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
173
|
-
self.config.AUTH_API_URLS.userInfoAPI;
|
|
174
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, userId: userid });
|
|
175
|
-
|
|
176
|
-
// Setup request with URL
|
|
177
|
-
var requestAPI = request.delete(url);
|
|
178
|
-
if (self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
179
|
-
|
|
180
|
-
// Setup token in Authorization header
|
|
181
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
182
|
-
|
|
183
|
-
// Call DELETE USER API
|
|
184
|
-
requestAPI.end(function (error, response) {
|
|
185
|
-
if (error) {
|
|
186
|
-
error = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
187
|
-
dfd.reject(error);
|
|
188
|
-
}
|
|
189
|
-
else { dfd.resolve(response.body); }
|
|
190
|
-
});
|
|
191
|
-
} else {
|
|
192
|
-
err = {};
|
|
193
|
-
err.message = err.description = 'Mandatory parameter userid not found in request options.';
|
|
194
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
195
|
-
dfd.reject(err);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
return dfd.promise;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
//options = {
|
|
202
|
-
// search: 'search string', //optional.
|
|
203
|
-
// lookup: 'string', // Search query (',' separated key value pairs), e.g. key1:val1,key2:val2,key3:val3
|
|
204
|
-
// lookup-operator: 'AND'/'OR', // Operator to use while lookup. Current Possible Value - AND, OR
|
|
205
|
-
// cursor: 'cursor', //optional, cursor to get next set of groups.
|
|
206
|
-
// limit: number, //optional, limit the number of Users to fetch at a time.
|
|
207
|
-
// role: 'string' //optional, to search Users by Role
|
|
208
|
-
// sortField: ['first_name', 'last_name', 'ext_email', 'created', 'roles', ... (other fields of response entity)]
|
|
209
|
-
// Sort the result according to given field. By default is 'last_name’, followed by ‘first_name’ in asc order.
|
|
210
|
-
// sortOrder: ['desc', 'asc'] //optional, By default is 'desc’.
|
|
211
|
-
//}
|
|
212
|
-
function getAllUsers(options) {
|
|
213
|
-
var self = this;
|
|
214
|
-
// Initializing promise
|
|
215
|
-
var dfd = q.defer();
|
|
216
|
-
// Validations
|
|
217
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
218
|
-
if(err) { dfd.reject(err); }
|
|
219
|
-
else {
|
|
220
|
-
var queryStr = 'orgid:"' + self.orgId + '"';
|
|
221
|
-
|
|
222
|
-
if(options.lookup && options['lookup-operator']) {
|
|
223
|
-
var lookupString = options.lookup;
|
|
224
|
-
lookupString = lookupString.replace(/ext_/ig, '');
|
|
225
|
-
var lookupArray = lookupString.split(',').map(function(item) {
|
|
226
|
-
var lookupItem = item.trim();
|
|
227
|
-
var tempArr = lookupItem.split(':');
|
|
228
|
-
lookupItem = '(' + lookupItem + ' OR ' + tempArr[0] + '.keyword:' + tempArr[1] + ')';
|
|
229
|
-
return lookupItem;
|
|
230
|
-
});
|
|
231
|
-
queryStr = queryStr + ' AND (' + lookupArray.join(' ' + options['lookup-operator'] + ' ') + ')';
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
if(options.role) {
|
|
235
|
-
var roleNameString = options.role;
|
|
236
|
-
var roleNameArray = roleNameString.split(',').map(function(item) { return item.trim(); });
|
|
237
|
-
for(var idx in roleNameArray){
|
|
238
|
-
roleNameArray[idx] = 'roles:' + roleNameArray[idx];
|
|
239
|
-
}
|
|
240
|
-
queryStr = queryStr + ' AND (' + roleNameArray.join(' OR ') + ')';
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if(options.search) {
|
|
244
|
-
queryStr = queryStr + ' AND (email:"' + options.search + '" OR first_name:"' + options.search + '" OR last_name:"'
|
|
245
|
-
+ options.search + '" OR username:"' + options.search + '" OR userid:"' + options.search + '")';
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
var sortField = options.sortField || '';
|
|
249
|
-
sortField = sortField.replace(/ext_/ig, '').split(',').shift().trim() || 'last_name';
|
|
250
|
-
var sortOrder = options.sortOrder || 'asc';
|
|
251
|
-
if(sortField !== 'created') {
|
|
252
|
-
sortField = sortField + '.keyword';
|
|
253
|
-
}
|
|
254
|
-
var sortObj = {}, sortArr = [];
|
|
255
|
-
sortObj[sortField] = sortOrder;
|
|
256
|
-
sortArr.push(sortObj);
|
|
257
|
-
|
|
258
|
-
var queryObj = {
|
|
259
|
-
query: { query_string: { query: queryStr } },
|
|
260
|
-
sort: sortArr
|
|
261
|
-
};
|
|
262
|
-
|
|
263
|
-
if(options.cursor) { queryObj.search_after = JSON.parse(options.cursor); }
|
|
264
|
-
if(options.limit) { queryObj.size = options.limit; }
|
|
265
|
-
else { options.limit = 10; } // by default ES returns only 10 elements at max.
|
|
266
|
-
|
|
267
|
-
//Passed all validations, Construct API url
|
|
268
|
-
var url = self.config.DEFAULT_HOSTS.INTEGRATION +
|
|
269
|
-
self.config.INTEGRATIONS_API_URLS.queryDataFromSearch;
|
|
270
|
-
url = helpers.api.constructAPIUrl(url, { index: 'users' });
|
|
271
|
-
|
|
272
|
-
// Contruct parameters
|
|
273
|
-
var params = {
|
|
274
|
-
query: JSON.stringify(queryObj)
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
// Setup request with URL and Params
|
|
278
|
-
var requestAPI = request.get(url).query(params);
|
|
279
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
280
|
-
|
|
281
|
-
// Setup token in Authorization header
|
|
282
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
283
|
-
|
|
284
|
-
// Call GET ALL USER Api
|
|
285
|
-
requestAPI.end(function(err, response) {
|
|
286
|
-
if(err) {
|
|
287
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
288
|
-
dfd.reject(err);
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
var responseObject = { entities: [] };
|
|
292
|
-
responseObject.count = response.body.hits.hits.length;
|
|
293
|
-
if(responseObject.count && (options.limit === responseObject.count)) {
|
|
294
|
-
var cursor = response.body.hits.hits[response.body.hits.hits.length - 1].sort;
|
|
295
|
-
responseObject.cursor = JSON.stringify(cursor);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
for(var index in response.body.hits.hits) {
|
|
299
|
-
var userEntity = response.body.hits.hits[index]._source;
|
|
300
|
-
var userObj = {
|
|
301
|
-
uuid: userEntity.dls_user_id,
|
|
302
|
-
name: userEntity.first_name + ' ' + userEntity.last_name,
|
|
303
|
-
email: userEntity.email || userEntity.ext_email,
|
|
304
|
-
username: userEntity.userid + '--ACCOUNT',
|
|
305
|
-
created: userEntity.created,
|
|
306
|
-
org: { id: self.orgId }
|
|
307
|
-
};
|
|
308
|
-
if(userEntity.roles) {
|
|
309
|
-
userObj.roles = userEntity.roles;
|
|
310
|
-
}
|
|
311
|
-
if(userEntity.provision_method) {
|
|
312
|
-
userObj.provision_method = userEntity.provision_method;
|
|
313
|
-
}
|
|
314
|
-
if(userEntity.first_name) {
|
|
315
|
-
userObj.first_name = userEntity.first_name;
|
|
316
|
-
}
|
|
317
|
-
if(userEntity.last_name) {
|
|
318
|
-
userObj.last_name = userEntity.last_name;
|
|
319
|
-
}
|
|
320
|
-
if(userEntity.ext_parent_id) {
|
|
321
|
-
userObj.ext_parent_id = userEntity.ext_parent_id;
|
|
322
|
-
}
|
|
323
|
-
if(userEntity.username) {
|
|
324
|
-
userObj.ext_username = userEntity.username;
|
|
325
|
-
}
|
|
326
|
-
if(userEntity.userid) {
|
|
327
|
-
userObj.ext_user_id = userEntity.userid;
|
|
328
|
-
}
|
|
329
|
-
if(userEntity.address) {
|
|
330
|
-
userObj.address = userEntity.address;
|
|
331
|
-
}
|
|
332
|
-
responseObject.entities.push(userObj);
|
|
333
|
-
}
|
|
334
|
-
dfd.resolve(responseObject);
|
|
335
|
-
}
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
return dfd.promise;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
//options = {
|
|
342
|
-
// userid: 'dlsUserId', //mandatory
|
|
343
|
-
// target_role: 'string', //mandatory
|
|
344
|
-
// ext_data: { email_template_id: string } //optional
|
|
345
|
-
//}
|
|
346
|
-
function updateUserRole(options) {
|
|
347
|
-
var self = this;
|
|
348
|
-
|
|
349
|
-
// Initializing promise
|
|
350
|
-
var dfd = q.defer();
|
|
351
|
-
// Validations
|
|
352
|
-
var error = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
353
|
-
if(error) { dfd.reject(error); }
|
|
354
|
-
else {
|
|
355
|
-
if(options && options.userid && options.target_role) {
|
|
356
|
-
// Passed all validations, Contruct API url
|
|
357
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
358
|
-
self.config.AUTH_API_URLS.updateUserRoleAPI;
|
|
359
|
-
url = helpers.api.constructAPIUrl(url, { orgId : self.orgId, userId: options.userid });
|
|
360
|
-
var bodyParams = { ext_data: options.ext_data, target_role: options.target_role };
|
|
361
|
-
// Setup request with URL and Params
|
|
362
|
-
var requestAPI = request.put(url)
|
|
363
|
-
.set('Content-Type', 'application/json')
|
|
364
|
-
.set('Accept', 'application/json')
|
|
365
|
-
.send(bodyParams);
|
|
366
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
367
|
-
// Setup token in Authorization header
|
|
368
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
369
|
-
|
|
370
|
-
requestAPI.end(function(err, response) {
|
|
371
|
-
if(err) {
|
|
372
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
373
|
-
dfd.reject(err);
|
|
374
|
-
}
|
|
375
|
-
else { dfd.resolve(response); }
|
|
376
|
-
});
|
|
377
|
-
} else {
|
|
378
|
-
var err = {};
|
|
379
|
-
err.message = err.description = 'Mandatory parameter options, userid or target_role, not found in request options.';
|
|
380
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
381
|
-
dfd.reject(err);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
return dfd.promise;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
//options = {
|
|
389
|
-
// userid: 'uuid or username', //optional.
|
|
390
|
-
// search: 'search string', //optional.
|
|
391
|
-
// details: true/false, //optional, includes products & assignments information of class.
|
|
392
|
-
// sortField: ['startdate', 'enddate', 'title'] //optional, By default is 'title’.
|
|
393
|
-
// sortOrder: ['desc', 'asc'] //optional, By default is 'desc’.
|
|
394
|
-
// enrollmentType: ['creator', 'teacher', 'student'] //optional, bydefault send all classes.
|
|
395
|
-
// teacherId: 'string' //optional, get classes of a particular teacher only.
|
|
396
|
-
// cursor: 'cursor' //optional, cursor to get next set of classes
|
|
397
|
-
// limit: integer //optional, Number of entities to fetch at once
|
|
398
|
-
// bundleDetails: true/false //optional
|
|
399
|
-
//}
|
|
400
|
-
function getUserClasses(options) {
|
|
401
|
-
var self = this;
|
|
402
|
-
// Initializing promise
|
|
403
|
-
var dfd = q.defer();
|
|
404
|
-
// Validations
|
|
405
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
406
|
-
if(err) { dfd.reject(err); }
|
|
407
|
-
else {
|
|
408
|
-
var userid = 'me';
|
|
409
|
-
if(options) {
|
|
410
|
-
if(options.userid) { userid = options.userid; }
|
|
411
|
-
}
|
|
412
|
-
// Passed all validations, Construct API url
|
|
413
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
414
|
-
self.config.AUTH_API_URLS.getUserClassesAPI;
|
|
415
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, userId: userid });
|
|
416
|
-
|
|
417
|
-
// Contruct parameters
|
|
418
|
-
var params = {};
|
|
419
|
-
if(options) {
|
|
420
|
-
if(options.search) { params.search = 'title:' + options.search; }
|
|
421
|
-
if(options.details) { params.details = options.details; }
|
|
422
|
-
if(options.enrollmentType) { params.enrollmentType = options.enrollmentType; }
|
|
423
|
-
if(options.sortField) { params.sortField = options.sortField; }
|
|
424
|
-
if(options.sortOrder) { params.sortOrder = options.sortOrder; }
|
|
425
|
-
if(options.cursor) { params.cursor = options.cursor; }
|
|
426
|
-
if(options.limit) { params.limit = options.limit; }
|
|
427
|
-
if(options.teacherId) { params.lookup = 'class.class.instructor.uuid:' + options.teacherId; }
|
|
428
|
-
if(options.bundleDetails) { params.bundleDetails = options.bundleDetails; }
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
// Setup request with URL and Params
|
|
432
|
-
var requestAPI = request.get(url).query(params);
|
|
433
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
434
|
-
|
|
435
|
-
// Setup token in Authorization header
|
|
436
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
437
|
-
|
|
438
|
-
// Call GET ALL USER Api
|
|
439
|
-
requestAPI.end(function(err, response) {
|
|
440
|
-
if(err) {
|
|
441
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
442
|
-
dfd.reject(err);
|
|
443
|
-
}
|
|
444
|
-
else { dfd.resolve(response.body); }
|
|
445
|
-
});
|
|
446
|
-
}
|
|
447
|
-
return dfd.promise;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
/**
|
|
451
|
-
* options = {
|
|
452
|
-
* classid: 'classid',
|
|
453
|
-
* search: 'string', // (optional) Search Query
|
|
454
|
-
* cursor: 'string', // (optional) Cursor string to fetch next set of Users
|
|
455
|
-
* limit: 'integer' // (optional) Number of users to fetch at a time.
|
|
456
|
-
* sortField: 'string' // (optional) Sort the result according to given field. By default is 'email’.
|
|
457
|
-
* sortOrder: 'string' // (optional) Sort the result according to given order. By default is 'desc’.
|
|
458
|
-
* }
|
|
459
|
-
*/
|
|
460
|
-
function getClassUsers(options) {
|
|
461
|
-
var self = this;
|
|
462
|
-
// Initializing promise
|
|
463
|
-
var dfd = q.defer();
|
|
464
|
-
// Validations
|
|
465
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
466
|
-
if(err) { dfd.reject(err); }
|
|
467
|
-
else {
|
|
468
|
-
if(options && options.classid) {
|
|
469
|
-
// Passed all validations, Construct API url
|
|
470
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
471
|
-
self.config.AUTH_API_URLS.getClassUsersAPI;
|
|
472
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
473
|
-
orgId: self.orgId, classId: options.classid
|
|
474
|
-
});
|
|
475
|
-
|
|
476
|
-
// Setup params
|
|
477
|
-
var params = {};
|
|
478
|
-
if(options.search) { params.search = options.search; }
|
|
479
|
-
if(options.cursor) { params.cursor = options.cursor; }
|
|
480
|
-
if(options.limit) { params.limit = options.limit; }
|
|
481
|
-
if(options.sortField) { params.sortField = options.sortField; }
|
|
482
|
-
if(options.sortOrder) { params.sortOrder = options.sortOrder; }
|
|
483
|
-
|
|
484
|
-
// Setup request with URL and Params
|
|
485
|
-
var requestAPI = request.get(url).query(params);
|
|
486
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
487
|
-
|
|
488
|
-
// Setup token in Authorization header
|
|
489
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
490
|
-
|
|
491
|
-
// Call GET ALL USER Api
|
|
492
|
-
requestAPI.end(function(err, response) {
|
|
493
|
-
if(err) {
|
|
494
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
495
|
-
dfd.reject(err);
|
|
496
|
-
}
|
|
497
|
-
else {
|
|
498
|
-
response.body.entities = converter.convertEnrollmetsResponse({data: response.body.entities}) ;
|
|
499
|
-
dfd.resolve(response.body);
|
|
500
|
-
}
|
|
501
|
-
});
|
|
502
|
-
} else {
|
|
503
|
-
err = {};
|
|
504
|
-
err.message = err.description = 'Required parameter classid is not defined.';
|
|
505
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
506
|
-
dfd.reject(err);
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
return dfd.promise;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
|
-
//options = {
|
|
513
|
-
// extension: 'csv',
|
|
514
|
-
// import_type: 'users'/'groups'/'user-group-enrollment',
|
|
515
|
-
// upFile: '' // path to csv file to be uploaded
|
|
516
|
-
//}
|
|
517
|
-
function pisImport(options) {
|
|
518
|
-
var self = this;
|
|
519
|
-
// Initializing promise
|
|
520
|
-
var dfd = q.defer();
|
|
521
|
-
// Validations
|
|
522
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
523
|
-
if(err) { dfd.reject(err); }
|
|
524
|
-
else {
|
|
525
|
-
// Passed all validations, Construct API url
|
|
526
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
527
|
-
self.config.AUTH_API_URLS.pisImportAPI;
|
|
528
|
-
url = helpers.api.constructAPIUrl(url, {"orgId" : self.orgId});
|
|
529
|
-
// Contruct parameters
|
|
530
|
-
var params = {};
|
|
531
|
-
var upfile;
|
|
532
|
-
if(options) {
|
|
533
|
-
if(options.extension) { params.extension = options.extension; }
|
|
534
|
-
if(options.import_type) { params.import_type = options.import_type; }
|
|
535
|
-
if(options.upfile) { upfile = options.upfile; }
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
// Setup request with URL and Params
|
|
539
|
-
var requestAPI = request.post(url).query(params)
|
|
540
|
-
.set('Content-Type', 'multipart/form-data')
|
|
541
|
-
.attach('upfile', upfile);
|
|
542
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
543
|
-
|
|
544
|
-
// Setup token in Authorization header
|
|
545
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
546
|
-
|
|
547
|
-
// Call PIS IMPORT Api
|
|
548
|
-
requestAPI.end(function(err, response) {
|
|
549
|
-
if(err) {
|
|
550
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
551
|
-
dfd.reject(err);
|
|
552
|
-
}
|
|
553
|
-
else { dfd.resolve(response.body); }
|
|
554
|
-
});
|
|
555
|
-
}
|
|
556
|
-
return dfd.promise;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
//options = {
|
|
560
|
-
// field: '' // apps / lti / sis / pis / product[ANY ONE]
|
|
561
|
-
//}
|
|
562
|
-
function getOrgSettings(options) {
|
|
563
|
-
var self = this;
|
|
564
|
-
// Initializing promise
|
|
565
|
-
var dfd = q.defer();
|
|
566
|
-
// Validations
|
|
567
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
568
|
-
if(err) { dfd.reject(err); }
|
|
569
|
-
else {
|
|
570
|
-
// Passed all validations, Construct API url
|
|
571
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
572
|
-
self.config.AUTH_API_URLS.getSettings;
|
|
573
|
-
url = helpers.api.constructAPIUrl(url, {orgId: self.orgId});
|
|
574
|
-
|
|
575
|
-
// Contruct parameters
|
|
576
|
-
var params = {};
|
|
577
|
-
if(options && options.field) {
|
|
578
|
-
url = self.config.DEFAULT_HOSTS.AUTH +
|
|
579
|
-
self.config.AUTH_API_URLS.getSettingsField;
|
|
580
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
581
|
-
orgId: self.orgId, field: options.field
|
|
582
|
-
});
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
// Setup request with URL and Params
|
|
586
|
-
var requestAPI = request.get(url).query(params);
|
|
587
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
588
|
-
|
|
589
|
-
// Setup token in Authorization header
|
|
590
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
591
|
-
|
|
592
|
-
// Call SIS IMPORT Api
|
|
593
|
-
requestAPI.end(function(err, response) {
|
|
594
|
-
if(err) {
|
|
595
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
596
|
-
dfd.reject(err);
|
|
597
|
-
}
|
|
598
|
-
else { dfd.resolve(response.body); }
|
|
599
|
-
});
|
|
600
|
-
}
|
|
601
|
-
return dfd.promise;
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
//options = {
|
|
605
|
-
// body: {} // the top level settings field to be updated.
|
|
606
|
-
//}
|
|
607
|
-
function updateOrgSettings(options) {
|
|
608
|
-
var self = this;
|
|
609
|
-
// Initializing promise
|
|
610
|
-
var dfd = q.defer();
|
|
611
|
-
// Validations
|
|
612
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
613
|
-
if(err) { dfd.reject(err); }
|
|
614
|
-
else {
|
|
615
|
-
// Passed all validations, Construct API url
|
|
616
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
617
|
-
self.config.AUTH_API_URLS.getSettings;
|
|
618
|
-
url = helpers.api.constructAPIUrl(url, {orgId: self.orgId});
|
|
619
|
-
// Setup request with URL and Params
|
|
620
|
-
var requestAPI = request.put(url);
|
|
621
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
622
|
-
|
|
623
|
-
if(options.body) {
|
|
624
|
-
if(options.body.sis && (! options.body.sis.productid)) {
|
|
625
|
-
options.body.sis.productid = [];
|
|
626
|
-
}
|
|
627
|
-
requestAPI.send(options.body);
|
|
628
|
-
}
|
|
629
|
-
// Setup token in Authorization header
|
|
630
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
631
|
-
|
|
632
|
-
// Call SIS IMPORT Api
|
|
633
|
-
requestAPI.end(function(err, response) {
|
|
634
|
-
if(err) {
|
|
635
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
636
|
-
dfd.reject(err);
|
|
637
|
-
}
|
|
638
|
-
else { dfd.resolve(response.body); }
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
return dfd.promise;
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
//options = {
|
|
645
|
-
// classid: "string"
|
|
646
|
-
//}
|
|
647
|
-
function generateClassCode(options) {
|
|
648
|
-
var self = this, err;
|
|
649
|
-
// Initializing promise
|
|
650
|
-
var dfd = q.defer();
|
|
651
|
-
if(options && options.classid) {
|
|
652
|
-
// Validations
|
|
653
|
-
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
654
|
-
if(err) { dfd.reject(err); }
|
|
655
|
-
else {
|
|
656
|
-
// Passed all validations, Construct API url
|
|
657
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
658
|
-
self.config.AUTH_API_URLS.generateClassCode;
|
|
659
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
660
|
-
orgId: self.orgId, classId: options.classid
|
|
661
|
-
});
|
|
662
|
-
// Setup request with URL and Params
|
|
663
|
-
var requestAPI = request.post(url);
|
|
664
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
665
|
-
|
|
666
|
-
// Setup token in Authorization header
|
|
667
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
668
|
-
|
|
669
|
-
// Call Update class settings Api
|
|
670
|
-
requestAPI.end(function(err, response) {
|
|
671
|
-
if(err) {
|
|
672
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
673
|
-
dfd.reject(err);
|
|
674
|
-
}
|
|
675
|
-
else { dfd.resolve(response.body); }
|
|
676
|
-
});
|
|
677
|
-
}
|
|
678
|
-
} else {
|
|
679
|
-
err = {};
|
|
680
|
-
err.message = err.description = 'classid not found in request options.';
|
|
681
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
682
|
-
dfd.reject(err);
|
|
683
|
-
}
|
|
684
|
-
return dfd.promise;
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
/**
|
|
688
|
-
* {
|
|
689
|
-
accountId: 'string' //mandatory
|
|
690
|
-
extUserId: 'string', //mandatory
|
|
691
|
-
jobType: 'string' //optional queryParam, Use this param to get All Jobs of a particular jobType.
|
|
692
|
-
}
|
|
693
|
-
*/
|
|
694
|
-
function getAllJobs(options) {
|
|
695
|
-
var self = this;
|
|
696
|
-
// Initializing promise
|
|
697
|
-
var dfd = q.defer();
|
|
698
|
-
|
|
699
|
-
if(options && options.accountId && options.extUserId) {
|
|
700
|
-
// Passed all validations, Contruct API url
|
|
701
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getAllJobs;
|
|
702
|
-
url = helpers.api.constructAPIUrl(url, { accountId : options.accountId, extUserId: options.extUserId });
|
|
703
|
-
|
|
704
|
-
var params = {};
|
|
705
|
-
if(options.jobType) { params.jobType = options.jobType; }
|
|
706
|
-
|
|
707
|
-
// Setup request with URL and Params
|
|
708
|
-
var requestAPI = request.get(url).query(params);
|
|
709
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
710
|
-
|
|
711
|
-
requestAPI.end(function(error, response) {
|
|
712
|
-
if(error) {
|
|
713
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
714
|
-
dfd.reject(error);
|
|
715
|
-
}
|
|
716
|
-
else { dfd.resolve(response.body); }
|
|
717
|
-
});
|
|
718
|
-
} else {
|
|
719
|
-
var err = {};
|
|
720
|
-
err.message = err.description = 'accountId or extUserId not found in request options.';
|
|
721
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
722
|
-
dfd.reject(err);
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
return dfd.promise;
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
/**
|
|
729
|
-
* options = {
|
|
730
|
-
accountId: 'string', //mandatory
|
|
731
|
-
extUserId: 'string', //mandatory
|
|
732
|
-
jobId: 'string', //mandatory
|
|
733
|
-
jobType: 'string' //mandatory
|
|
734
|
-
}
|
|
735
|
-
*/
|
|
736
|
-
function getJob(options) {
|
|
737
|
-
var self = this;
|
|
738
|
-
// Initializing promise
|
|
739
|
-
var dfd = q.defer();
|
|
740
|
-
|
|
741
|
-
if(options && options.accountId && options.extUserId && options.jobId && options.jobType) {
|
|
742
|
-
// Passed all validations, Contruct API url
|
|
743
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getJob;
|
|
744
|
-
url = helpers.api.constructAPIUrl(url, { accountId : options.accountId, extUserId: options.extUserId,
|
|
745
|
-
jobId: options.jobId });
|
|
746
|
-
var params = { jobType: options.jobType };
|
|
747
|
-
|
|
748
|
-
// Setup request with URL and Params
|
|
749
|
-
var requestAPI = request.get(url).query(params);
|
|
750
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
751
|
-
|
|
752
|
-
requestAPI.end(function(error, response) {
|
|
753
|
-
if(error) {
|
|
754
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
755
|
-
dfd.reject(error);
|
|
756
|
-
}
|
|
757
|
-
else { dfd.resolve(response.body); }
|
|
758
|
-
});
|
|
759
|
-
} else {
|
|
760
|
-
var err = {};
|
|
761
|
-
err.message = err.description = 'accountId or extUserId or jobType or jobId or not found in request options.';
|
|
762
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
763
|
-
dfd.reject(err);
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
return dfd.promise;
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
//options = {
|
|
770
|
-
// search: 'search string', //optional.
|
|
771
|
-
// sortField: ['startdate', 'enddate', 'title', 'created'] //optional, By default is 'created’.
|
|
772
|
-
// sortOrder: ['desc', 'asc'] //optional, By default is 'desc’.
|
|
773
|
-
// cursor: 'cursor' //optional, cursor to get next set of groups.
|
|
774
|
-
// limit: integer, // (optional) limit number of Classes in response.
|
|
775
|
-
// lookup: 'string', // (optional) Search query (',' separated key value pairs),
|
|
776
|
-
// Eg. key1:val1,key2:val2
|
|
777
|
-
//}
|
|
778
|
-
function getAllClasses(options) {
|
|
779
|
-
var self = this;
|
|
780
|
-
|
|
781
|
-
//Initializing promise
|
|
782
|
-
var dfd = q.defer();
|
|
783
|
-
|
|
784
|
-
//Validations
|
|
785
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
786
|
-
if(err) {
|
|
787
|
-
dfd.reject(err);
|
|
788
|
-
} else {
|
|
789
|
-
var queryStr = 'orgid:"' + self.orgId + '"';
|
|
790
|
-
|
|
791
|
-
if(options.search) {
|
|
792
|
-
queryStr = queryStr + ' AND (title:"' + options.search + '" OR class.instructor.first_name:"' + options.search +
|
|
793
|
-
'" OR class.instructor.last_name:"' + options.search + '" OR description:"' + options.search + '")';
|
|
794
|
-
}
|
|
795
|
-
|
|
796
|
-
var sortField = options.sortField || '';
|
|
797
|
-
sortField = sortField.replace(/ext_/ig, '').split(',').shift().trim() || 'created';
|
|
798
|
-
if(sortField === 'enddate' || sortField === 'startdate') {
|
|
799
|
-
sortField = 'class.' + sortField;
|
|
800
|
-
}
|
|
801
|
-
if(sortField === 'title') {
|
|
802
|
-
sortField = sortField + '.keyword';
|
|
803
|
-
}
|
|
804
|
-
var sortOrder = options.sortOrder || 'desc';
|
|
805
|
-
var sortObj = {}, sortArr = [];
|
|
806
|
-
sortObj[sortField] = sortOrder;
|
|
807
|
-
sortArr.push(sortObj);
|
|
808
|
-
|
|
809
|
-
var queryObj = {
|
|
810
|
-
query: { query_string: { query: queryStr } },
|
|
811
|
-
sort: sortArr
|
|
812
|
-
};
|
|
813
|
-
|
|
814
|
-
if(options.cursor) { queryObj.search_after = JSON.parse(options.cursor); }
|
|
815
|
-
if(options.limit) { queryObj.size = options.limit; }
|
|
816
|
-
else { options.limit = 10; } // by default ES returns only 10 elements at max.
|
|
817
|
-
|
|
818
|
-
//Passed all validations, Construct API url
|
|
819
|
-
var url = self.config.DEFAULT_HOSTS.INTEGRATION +
|
|
820
|
-
self.config.INTEGRATIONS_API_URLS.queryDataFromSearch;
|
|
821
|
-
url = helpers.api.constructAPIUrl(url, { index: 'classes' });
|
|
822
|
-
|
|
823
|
-
// Contruct parameters
|
|
824
|
-
var params = {
|
|
825
|
-
query: JSON.stringify(queryObj)
|
|
826
|
-
};
|
|
827
|
-
|
|
828
|
-
//Setup request with URL and Params
|
|
829
|
-
var requestAPI = request.get(url).query(params);
|
|
830
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
831
|
-
|
|
832
|
-
//Setup token in Authorization header
|
|
833
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
834
|
-
|
|
835
|
-
//Call GET ALL USER Api
|
|
836
|
-
requestAPI.end(function(err, response) {
|
|
837
|
-
if(err) {
|
|
838
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
839
|
-
dfd.reject(err);
|
|
840
|
-
} else {
|
|
841
|
-
var responseObject = { entities: [] };
|
|
842
|
-
responseObject.count = response.body.hits.hits.length;
|
|
843
|
-
if(responseObject.count && (options.limit === responseObject.count)) {
|
|
844
|
-
var cursor = response.body.hits.hits[response.body.hits.hits.length - 1].sort;
|
|
845
|
-
responseObject.cursor = JSON.stringify(cursor);
|
|
846
|
-
}
|
|
847
|
-
for(var index in response.body.hits.hits) {
|
|
848
|
-
var classEntity = response.body.hits.hits[index]._source;
|
|
849
|
-
var classObj = {
|
|
850
|
-
uuid: classEntity.classid,
|
|
851
|
-
created: classEntity.created,
|
|
852
|
-
modified: classEntity.modified,
|
|
853
|
-
path: classEntity.path,
|
|
854
|
-
category: classEntity.category,
|
|
855
|
-
class: {
|
|
856
|
-
enddate: classEntity.class.enddate,
|
|
857
|
-
instructor: {
|
|
858
|
-
name: classEntity.class.instructor.first_name + ' ' + classEntity.class.instructor.last_name,
|
|
859
|
-
last_name: classEntity.class.instructor.last_name,
|
|
860
|
-
first_name: classEntity.class.instructor.first_name,
|
|
861
|
-
uuid: classEntity.class.instructor.dls_user_id,
|
|
862
|
-
email: classEntity.class.instructor.email,
|
|
863
|
-
username: classEntity.class.instructor.userid + '--ACCOUNT'
|
|
864
|
-
},
|
|
865
|
-
startdate: classEntity.class.startdate
|
|
866
|
-
},
|
|
867
|
-
'class.settings.active': classEntity['class.settings.active'],
|
|
868
|
-
class_code: classEntity.class_code,
|
|
869
|
-
class_ownership: classEntity.class_ownership || { owner_status: 'ENROLLED', model: 'STRICT' },
|
|
870
|
-
description: classEntity.description,
|
|
871
|
-
provision_method: classEntity.class.provision_method,
|
|
872
|
-
title: classEntity.title
|
|
873
|
-
};
|
|
874
|
-
responseObject.entities.push(classObj);
|
|
875
|
-
}
|
|
876
|
-
dfd.resolve(responseObject);
|
|
877
|
-
}
|
|
878
|
-
});
|
|
879
|
-
}
|
|
880
|
-
return dfd.promise;
|
|
881
|
-
}
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
//options = {
|
|
885
|
-
// classId: 'class uuid'
|
|
886
|
-
//}
|
|
887
|
-
function getParticularClass(options) {
|
|
888
|
-
var self = this;
|
|
889
|
-
|
|
890
|
-
//Initializing promise
|
|
891
|
-
var dfd = q.defer();
|
|
892
|
-
|
|
893
|
-
//Validations
|
|
894
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
895
|
-
if(err) {
|
|
896
|
-
dfd.reject(err);
|
|
897
|
-
} else {
|
|
898
|
-
if(options && options.classId) {
|
|
899
|
-
//Passed all validations, Contruct API url
|
|
900
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getParticularClassAPI;
|
|
901
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classId } );
|
|
902
|
-
|
|
903
|
-
var requestAPI = request.get(url);
|
|
904
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
905
|
-
|
|
906
|
-
//Setup token in Authorization header
|
|
907
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
908
|
-
|
|
909
|
-
requestAPI.end(function(err, response) {
|
|
910
|
-
if(err) {
|
|
911
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
912
|
-
dfd.reject(err);
|
|
913
|
-
} else {
|
|
914
|
-
dfd.resolve(response.body);
|
|
915
|
-
}
|
|
916
|
-
});
|
|
917
|
-
} else {
|
|
918
|
-
err = {};
|
|
919
|
-
err.message = err.description = 'classId not found in request options.';
|
|
920
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
921
|
-
dfd.reject(err);
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
return dfd.promise;
|
|
925
|
-
}
|
|
926
|
-
|
|
927
|
-
//options = {
|
|
928
|
-
// ext_classid: 'ext classid' //mandatory
|
|
929
|
-
//}
|
|
930
|
-
function getParticularShadowClass(options) {
|
|
931
|
-
var self = this;
|
|
932
|
-
|
|
933
|
-
//Initializing promise
|
|
934
|
-
var dfd = q.defer();
|
|
935
|
-
|
|
936
|
-
// Validations
|
|
937
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
938
|
-
if(err) {
|
|
939
|
-
dfd.reject(err);
|
|
940
|
-
}
|
|
941
|
-
else {
|
|
942
|
-
if(options && options.ext_classid) {
|
|
943
|
-
//Passed all validations, Contruct API url
|
|
944
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getParticularShadowClassAPI;
|
|
945
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, extClassId: options.ext_classid } );
|
|
946
|
-
|
|
947
|
-
var requestAPI = request.get(url);
|
|
948
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
949
|
-
|
|
950
|
-
//Setup token in Authorization header
|
|
951
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
952
|
-
|
|
953
|
-
requestAPI.end(function(err, response) {
|
|
954
|
-
if(err) {
|
|
955
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
956
|
-
dfd.reject(err);
|
|
957
|
-
}
|
|
958
|
-
else {
|
|
959
|
-
dfd.resolve(response.body);
|
|
960
|
-
}
|
|
961
|
-
});
|
|
962
|
-
} else {
|
|
963
|
-
err = {};
|
|
964
|
-
err.message = err.description = 'ext_classid not found in request options.';
|
|
965
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
966
|
-
dfd.reject(err);
|
|
967
|
-
}
|
|
968
|
-
}
|
|
969
|
-
return dfd.promise;
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
//options = {
|
|
973
|
-
// classId: 'class uuid',
|
|
974
|
-
// productcode: 'productcode'
|
|
975
|
-
//}
|
|
976
|
-
function createClassProductAssociation(options) {
|
|
977
|
-
var self = this;
|
|
978
|
-
// Initializing promise
|
|
979
|
-
var dfd = q.defer();
|
|
980
|
-
// Validations
|
|
981
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
982
|
-
if(err) { dfd.reject(err); }
|
|
983
|
-
else {
|
|
984
|
-
if(options && options.classId && options.productcode) {
|
|
985
|
-
// Passed all validations, Contruct API url
|
|
986
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
987
|
-
self.config.AUTH_API_URLS.classProductAssociation;
|
|
988
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
989
|
-
orgId: self.orgId, classId: options.classId, productcode: options.productcode
|
|
990
|
-
});
|
|
991
|
-
|
|
992
|
-
// Setup request with URL and Params
|
|
993
|
-
var requestAPI = request.post(url)
|
|
994
|
-
.set('Content-Type', 'application/json')
|
|
995
|
-
.set('Accept', 'application/json');
|
|
996
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
997
|
-
|
|
998
|
-
// Setup token in Authorization header
|
|
999
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1000
|
-
|
|
1001
|
-
requestAPI.end(function(err, response) {
|
|
1002
|
-
if(err) {
|
|
1003
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1004
|
-
dfd.reject(err);
|
|
1005
|
-
}
|
|
1006
|
-
else { dfd.resolve(response.body); }
|
|
1007
|
-
});
|
|
1008
|
-
} else {
|
|
1009
|
-
err = {};
|
|
1010
|
-
err.message = err.description = 'classId or productcode not found in request options.';
|
|
1011
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1012
|
-
dfd.reject(err);
|
|
1013
|
-
}
|
|
1014
|
-
}
|
|
1015
|
-
return dfd.promise;
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
//options = {
|
|
1019
|
-
// classId: 'class uuid',
|
|
1020
|
-
// productcode: 'product code'
|
|
1021
|
-
//}
|
|
1022
|
-
function removeClassProductAssociation(options) {
|
|
1023
|
-
var self = this;
|
|
1024
|
-
// Initializing promise
|
|
1025
|
-
var dfd = q.defer();
|
|
1026
|
-
// Validations
|
|
1027
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1028
|
-
if(err) { dfd.reject(err); }
|
|
1029
|
-
else {
|
|
1030
|
-
if(options && options.classId && options.productcode) {
|
|
1031
|
-
// Passed all validations, Contruct API url
|
|
1032
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1033
|
-
self.config.AUTH_API_URLS.classProductAssociation;
|
|
1034
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1035
|
-
orgId: self.orgId, classId: options.classId, productcode: options.productcode
|
|
1036
|
-
});
|
|
1037
|
-
|
|
1038
|
-
// Contruct parameters
|
|
1039
|
-
var params = {};
|
|
1040
|
-
|
|
1041
|
-
// Setup request with URL and Params
|
|
1042
|
-
var requestAPI = request.delete(url).query(params);
|
|
1043
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1044
|
-
|
|
1045
|
-
// Setup token in Authorization header
|
|
1046
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1047
|
-
|
|
1048
|
-
requestAPI.end(function(err, response) {
|
|
1049
|
-
if(err) {
|
|
1050
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1051
|
-
dfd.reject(err);
|
|
1052
|
-
}
|
|
1053
|
-
else { dfd.resolve(response.body); }
|
|
1054
|
-
});
|
|
1055
|
-
} else {
|
|
1056
|
-
err = {};
|
|
1057
|
-
err.message = err.description = 'classId or productcode not found in request options.';
|
|
1058
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1059
|
-
dfd.reject(err);
|
|
1060
|
-
}
|
|
1061
|
-
}
|
|
1062
|
-
return dfd.promise;
|
|
1063
|
-
}
|
|
1064
|
-
|
|
1065
|
-
/*options = {
|
|
1066
|
-
classid: 'string'
|
|
1067
|
-
}*/
|
|
1068
|
-
function getClassAppdata(options) {
|
|
1069
|
-
var self = this;
|
|
1070
|
-
// Initializing promise
|
|
1071
|
-
var dfd = q.defer();
|
|
1072
|
-
// Validations
|
|
1073
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1074
|
-
if(err) { dfd.reject(err); }
|
|
1075
|
-
else {
|
|
1076
|
-
if(options && options.classid) {
|
|
1077
|
-
// Passed all validations, Contruct API url
|
|
1078
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1079
|
-
self.config.AUTH_API_URLS.ClassAppdata;
|
|
1080
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1081
|
-
orgId: self.orgId, classid: options.classid
|
|
1082
|
-
});
|
|
1083
|
-
//Setup request with URL
|
|
1084
|
-
var requestAPI = request.get(url);
|
|
1085
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1086
|
-
|
|
1087
|
-
//Setup token in Authorization header
|
|
1088
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1089
|
-
|
|
1090
|
-
//Call Class Appdata Api
|
|
1091
|
-
requestAPI.end(function(err, response) {
|
|
1092
|
-
if(err) {
|
|
1093
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1094
|
-
dfd.reject(err);
|
|
1095
|
-
} else {
|
|
1096
|
-
dfd.resolve(response.body);
|
|
1097
|
-
}
|
|
1098
|
-
});
|
|
1099
|
-
} else {
|
|
1100
|
-
err = {};
|
|
1101
|
-
err.message = err.description = 'classid not found in request options.';
|
|
1102
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1103
|
-
dfd.reject(err);
|
|
1104
|
-
}
|
|
1105
|
-
}
|
|
1106
|
-
return dfd.promise;
|
|
1107
|
-
}
|
|
1108
|
-
|
|
1109
|
-
/*options = {
|
|
1110
|
-
classid: 'string',
|
|
1111
|
-
appdata: {}
|
|
1112
|
-
}*/
|
|
1113
|
-
|
|
1114
|
-
function putClassAppdata(options) {
|
|
1115
|
-
var self = this;
|
|
1116
|
-
// Initializing promise
|
|
1117
|
-
var dfd = q.defer();
|
|
1118
|
-
// Validations
|
|
1119
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1120
|
-
if(err) { dfd.reject(err); }
|
|
1121
|
-
else {
|
|
1122
|
-
if(options && options.classid && options.appdata) {
|
|
1123
|
-
// Passed all validations, Contruct API url
|
|
1124
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1125
|
-
self.config.AUTH_API_URLS.ClassAppdata;
|
|
1126
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1127
|
-
orgId: self.orgId, classid: options.classid
|
|
1128
|
-
});
|
|
1129
|
-
|
|
1130
|
-
// Setup request with URL and Params
|
|
1131
|
-
var requestAPI = request.put(url)
|
|
1132
|
-
.set('Content-Type', 'application/json')
|
|
1133
|
-
.set('Accept', 'application/json')
|
|
1134
|
-
.send(options.appdata);
|
|
1135
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1136
|
-
|
|
1137
|
-
// Setup token in Authorization header
|
|
1138
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1139
|
-
|
|
1140
|
-
requestAPI.end(function(err, response) {
|
|
1141
|
-
if(err) {
|
|
1142
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1143
|
-
dfd.reject(err);
|
|
1144
|
-
}
|
|
1145
|
-
else { dfd.resolve(response.body); }
|
|
1146
|
-
});
|
|
1147
|
-
} else {
|
|
1148
|
-
err = {};
|
|
1149
|
-
err.message = err.description = 'classid or appdata not found in request options.';
|
|
1150
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1151
|
-
dfd.reject(err);
|
|
1152
|
-
}
|
|
1153
|
-
}
|
|
1154
|
-
return dfd.promise;
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
|
-
/*options = {
|
|
1158
|
-
classid: 'string'
|
|
1159
|
-
}*/
|
|
1160
|
-
|
|
1161
|
-
function deleteClassAppdata(options) {
|
|
1162
|
-
var self = this;
|
|
1163
|
-
// Initializing promise
|
|
1164
|
-
var dfd = q.defer();
|
|
1165
|
-
// Validations
|
|
1166
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1167
|
-
if(err) { dfd.reject(err); }
|
|
1168
|
-
else {
|
|
1169
|
-
if(options && options.classid) {
|
|
1170
|
-
// Passed all validations, Contruct API url
|
|
1171
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1172
|
-
self.config.AUTH_API_URLS.ClassAppdata;
|
|
1173
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1174
|
-
orgId: self.orgId, classid: options.classid
|
|
1175
|
-
});
|
|
1176
|
-
|
|
1177
|
-
// Setup request with URL and Params
|
|
1178
|
-
var requestAPI = request.delete(url);
|
|
1179
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1180
|
-
|
|
1181
|
-
// Setup token in Authorization header
|
|
1182
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1183
|
-
|
|
1184
|
-
requestAPI.end(function(err, response) {
|
|
1185
|
-
if(err) {
|
|
1186
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1187
|
-
dfd.reject(err);
|
|
1188
|
-
}
|
|
1189
|
-
else { dfd.resolve(response.body); }
|
|
1190
|
-
});
|
|
1191
|
-
} else {
|
|
1192
|
-
err = {};
|
|
1193
|
-
err.message = err.description = 'classid not found in request options.';
|
|
1194
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1195
|
-
dfd.reject(err);
|
|
1196
|
-
}
|
|
1197
|
-
}
|
|
1198
|
-
return dfd.promise;
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
//options = {
|
|
1202
|
-
// classid: '', //Class Id
|
|
1203
|
-
// userid: '', //User Id
|
|
1204
|
-
//};
|
|
1205
|
-
function enrollUsertoClass(options) {
|
|
1206
|
-
var self = this;
|
|
1207
|
-
var err = {};
|
|
1208
|
-
//Initializing promise
|
|
1209
|
-
var dfd = q.defer();
|
|
1210
|
-
if(options && options.classid && options.userid) {
|
|
1211
|
-
//Validations
|
|
1212
|
-
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1213
|
-
if(err) {
|
|
1214
|
-
dfd.reject(err);
|
|
1215
|
-
} else {
|
|
1216
|
-
//Passed all validations, Construct API url
|
|
1217
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1218
|
-
self.config.AUTH_API_URLS.enrollUsertoClass;
|
|
1219
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1220
|
-
orgId: self.orgId,
|
|
1221
|
-
classId: options.classid,
|
|
1222
|
-
userId: options.userid
|
|
1223
|
-
});
|
|
1224
|
-
|
|
1225
|
-
//Contruct parameters
|
|
1226
|
-
var params = {};
|
|
1227
|
-
|
|
1228
|
-
//Setup request with URL and Params
|
|
1229
|
-
var requestAPI = request.post(url)
|
|
1230
|
-
.set('Content-Type', 'application/json')
|
|
1231
|
-
.set('Accept', 'application/json')
|
|
1232
|
-
.query(params);
|
|
1233
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1234
|
-
|
|
1235
|
-
//Setup token in Authorization header
|
|
1236
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1237
|
-
|
|
1238
|
-
//Call GET Product by it's code Api
|
|
1239
|
-
requestAPI.end(function(err, response) {
|
|
1240
|
-
if(err) {
|
|
1241
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1242
|
-
dfd.reject(err);
|
|
1243
|
-
} else {
|
|
1244
|
-
dfd.resolve(response.body);
|
|
1245
|
-
}
|
|
1246
|
-
});
|
|
1247
|
-
}
|
|
1248
|
-
} else {
|
|
1249
|
-
err.message = err.description = 'Mandatory parameter classid or userid not found in request options';
|
|
1250
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1251
|
-
dfd.reject(err);
|
|
1252
|
-
}
|
|
1253
|
-
return dfd.promise;
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1256
|
-
//options = {
|
|
1257
|
-
// classid: '', //Class Id
|
|
1258
|
-
//};
|
|
1259
|
-
function enrollSelftoClass(options) {
|
|
1260
|
-
var self = this;
|
|
1261
|
-
var err = {};
|
|
1262
|
-
//Initializing promise
|
|
1263
|
-
var dfd = q.defer();
|
|
1264
|
-
if(options && options.classid) {
|
|
1265
|
-
//Validations
|
|
1266
|
-
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1267
|
-
if(err) {
|
|
1268
|
-
dfd.reject(err);
|
|
1269
|
-
} else {
|
|
1270
|
-
//Passed all validations, Construct API url
|
|
1271
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1272
|
-
self.config.AUTH_API_URLS.enrollSelftoClass;
|
|
1273
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1274
|
-
orgId: self.orgId,
|
|
1275
|
-
classId: options.classid
|
|
1276
|
-
});
|
|
1277
|
-
|
|
1278
|
-
//Setup request with URL and Params
|
|
1279
|
-
var requestAPI = request.post(url);
|
|
1280
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1281
|
-
|
|
1282
|
-
//Setup token in Authorization header
|
|
1283
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1284
|
-
|
|
1285
|
-
//Call GET Product by it's code Api
|
|
1286
|
-
requestAPI.end(function(err, response) {
|
|
1287
|
-
if(err) {
|
|
1288
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1289
|
-
dfd.reject(err);
|
|
1290
|
-
} else {
|
|
1291
|
-
dfd.resolve(response.body);
|
|
1292
|
-
}
|
|
1293
|
-
});
|
|
1294
|
-
}
|
|
1295
|
-
}
|
|
1296
|
-
else {
|
|
1297
|
-
err.message = err.description = 'Mandatory parameter classid not found in request options';
|
|
1298
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1299
|
-
dfd.reject(err);
|
|
1300
|
-
}
|
|
1301
|
-
return dfd.promise;
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
|
-
//options = {
|
|
1305
|
-
// classid: '', //Class Id
|
|
1306
|
-
// users: ['dls-userid1', 'dls-userid-2'] //Users Id
|
|
1307
|
-
//};
|
|
1308
|
-
function enrollMultiUserstoClass(options) {
|
|
1309
|
-
var self = this;
|
|
1310
|
-
var err = {};
|
|
1311
|
-
//Initializing promise
|
|
1312
|
-
var dfd = q.defer();
|
|
1313
|
-
if(options && options.classid && options.users) {
|
|
1314
|
-
//Validations
|
|
1315
|
-
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1316
|
-
if(err) {
|
|
1317
|
-
dfd.reject(err);
|
|
1318
|
-
} else {
|
|
1319
|
-
//Passed all validations, Construct API url
|
|
1320
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1321
|
-
self.config.AUTH_API_URLS.enrollMultiUserstoClass;
|
|
1322
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1323
|
-
orgId: self.orgId,
|
|
1324
|
-
classId: options.classid
|
|
1325
|
-
});
|
|
1326
|
-
|
|
1327
|
-
//Contruct parameters
|
|
1328
|
-
var params = {
|
|
1329
|
-
users: options.users
|
|
1330
|
-
};
|
|
1331
|
-
//Setup request with URL and Params
|
|
1332
|
-
var requestAPI = request.post(url)
|
|
1333
|
-
.set('Content-Type', 'application/json')
|
|
1334
|
-
.set('Accept', 'application/json')
|
|
1335
|
-
.send(params);
|
|
1336
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1337
|
-
|
|
1338
|
-
//Setup token in Authorization header
|
|
1339
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1340
|
-
|
|
1341
|
-
//Call GET Product by it's code Api
|
|
1342
|
-
requestAPI.end(function(err, response) {
|
|
1343
|
-
if(err) {
|
|
1344
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1345
|
-
dfd.reject(err);
|
|
1346
|
-
} else {
|
|
1347
|
-
dfd.resolve(response.body);
|
|
1348
|
-
}
|
|
1349
|
-
});
|
|
1350
|
-
}
|
|
1351
|
-
} else {
|
|
1352
|
-
err.message = err.description = 'Mandatory parameter classid or users ' +
|
|
1353
|
-
'array not found in request options';
|
|
1354
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1355
|
-
dfd.reject(err);
|
|
1356
|
-
}
|
|
1357
|
-
return dfd.promise;
|
|
1358
|
-
}
|
|
1359
|
-
|
|
1360
|
-
//options = {
|
|
1361
|
-
// classid: '', //Class Id
|
|
1362
|
-
// users: ['dls-userid1', 'dls-userid-2'] //Users Id
|
|
1363
|
-
//};
|
|
1364
|
-
function unEnrollMultiUserstoClass(options) {
|
|
1365
|
-
var self = this;
|
|
1366
|
-
var err = {};
|
|
1367
|
-
//Initializing promise
|
|
1368
|
-
var dfd = q.defer();
|
|
1369
|
-
if(options && options.classid && options.users) {
|
|
1370
|
-
//Validations
|
|
1371
|
-
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1372
|
-
if(err) {
|
|
1373
|
-
dfd.reject(err);
|
|
1374
|
-
} else {
|
|
1375
|
-
//Passed all validations, Construct API url
|
|
1376
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1377
|
-
self.config.AUTH_API_URLS.enrollMultiUserstoClass;
|
|
1378
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1379
|
-
orgId: self.orgId,
|
|
1380
|
-
classId: options.classid
|
|
1381
|
-
});
|
|
1382
|
-
|
|
1383
|
-
//Contruct parameters
|
|
1384
|
-
var params = {
|
|
1385
|
-
users: options.users
|
|
1386
|
-
};
|
|
1387
|
-
//Setup request with URL and Params
|
|
1388
|
-
var requestAPI = request.delete(url)
|
|
1389
|
-
.set('Content-Type', 'application/json')
|
|
1390
|
-
.set('Accept', 'application/json')
|
|
1391
|
-
.send(params);
|
|
1392
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1393
|
-
|
|
1394
|
-
//Setup token in Authorization header
|
|
1395
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1396
|
-
|
|
1397
|
-
//Call GET Product by it's code Api
|
|
1398
|
-
requestAPI.end(function(err, response) {
|
|
1399
|
-
if(err) {
|
|
1400
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1401
|
-
dfd.reject(err);
|
|
1402
|
-
} else {
|
|
1403
|
-
dfd.resolve(response.body);
|
|
1404
|
-
}
|
|
1405
|
-
});
|
|
1406
|
-
}
|
|
1407
|
-
} else {
|
|
1408
|
-
err.message = err.description = 'Mandatory parameter classid or users ' +
|
|
1409
|
-
'array not found in request options';
|
|
1410
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1411
|
-
dfd.reject(err);
|
|
1412
|
-
}
|
|
1413
|
-
return dfd.promise;
|
|
1414
|
-
}
|
|
1415
|
-
|
|
1416
|
-
//options = {
|
|
1417
|
-
// classid: '', //Class Id
|
|
1418
|
-
// userid: '', //User Id
|
|
1419
|
-
//};
|
|
1420
|
-
function unEnrollUsertoClass(options) {
|
|
1421
|
-
var self = this;
|
|
1422
|
-
var err = {};
|
|
1423
|
-
//Initializing promise
|
|
1424
|
-
var dfd = q.defer();
|
|
1425
|
-
if(options && options.classid && options.userid) {
|
|
1426
|
-
//Validations
|
|
1427
|
-
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1428
|
-
if(err) {
|
|
1429
|
-
dfd.reject(err);
|
|
1430
|
-
} else {
|
|
1431
|
-
//Passed all validations, Construct API url
|
|
1432
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1433
|
-
self.config.AUTH_API_URLS.enrollUsertoClass;
|
|
1434
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1435
|
-
orgId: self.orgId,
|
|
1436
|
-
classId: options.classid,
|
|
1437
|
-
userId: options.userid
|
|
1438
|
-
});
|
|
1439
|
-
|
|
1440
|
-
//Contruct parameters
|
|
1441
|
-
var params = {};
|
|
1442
|
-
|
|
1443
|
-
//Setup request with URL and Params
|
|
1444
|
-
var requestAPI = request.delete(url).query(params);
|
|
1445
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1446
|
-
|
|
1447
|
-
//Setup token in Authorization header
|
|
1448
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1449
|
-
|
|
1450
|
-
//Call GET Product by it's code Api
|
|
1451
|
-
requestAPI.end(function(err, response) {
|
|
1452
|
-
if(err) {
|
|
1453
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1454
|
-
dfd.reject(err);
|
|
1455
|
-
} else {
|
|
1456
|
-
dfd.resolve(response.body);
|
|
1457
|
-
}
|
|
1458
|
-
});
|
|
1459
|
-
}
|
|
1460
|
-
} else {
|
|
1461
|
-
err.message = err.description = 'Mandatory parameter classid or userid not found in request options';
|
|
1462
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1463
|
-
dfd.reject(err);
|
|
1464
|
-
}
|
|
1465
|
-
return dfd.promise;
|
|
1466
|
-
}
|
|
1467
|
-
|
|
1468
|
-
//options = ['parameter1', 'parameter2']
|
|
1469
|
-
function encodeURLParameter(options) {
|
|
1470
|
-
var response = {};
|
|
1471
|
-
for(var param in options) {
|
|
1472
|
-
response[options[param]] = encodeURIComponent(options[param]);
|
|
1473
|
-
}
|
|
1474
|
-
return response;
|
|
1475
|
-
}
|
|
1476
|
-
|
|
1477
|
-
/**
|
|
1478
|
-
* options = {
|
|
1479
|
-
* title: 'class title',
|
|
1480
|
-
* startdate: 'Epoch(Unix) timestamp in milliseconds',
|
|
1481
|
-
* enddate: 'Epoch(Unix) timestamp in milliseconds',
|
|
1482
|
-
* description: '' // Optional field
|
|
1483
|
-
* class_ownership: 'STRICT' / 'NO_OWNER' // Default - STRICT, Optional field
|
|
1484
|
-
* }
|
|
1485
|
-
*/
|
|
1486
|
-
function createClass(options) {
|
|
1487
|
-
var self = this;
|
|
1488
|
-
|
|
1489
|
-
//Initializing promise
|
|
1490
|
-
var dfd = q.defer();
|
|
1491
|
-
|
|
1492
|
-
//Validations
|
|
1493
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1494
|
-
if(err) {
|
|
1495
|
-
dfd.reject(err);
|
|
1496
|
-
} else {
|
|
1497
|
-
if(options && options.title && options.startdate && options.enddate) {
|
|
1498
|
-
//Passed all validations, Contruct API url
|
|
1499
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.createClass;
|
|
1500
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId });
|
|
1501
|
-
|
|
1502
|
-
//Contruct parameters
|
|
1503
|
-
var params = {
|
|
1504
|
-
title: options.title,
|
|
1505
|
-
startdate: options.startdate,
|
|
1506
|
-
enddate: options.enddate
|
|
1507
|
-
};
|
|
1508
|
-
|
|
1509
|
-
if(options.description){ params.description = options.description; }
|
|
1510
|
-
if(options.class_ownership){ params.class_ownership = options.class_ownership; }
|
|
1511
|
-
|
|
1512
|
-
//Setup request with URL and Params
|
|
1513
|
-
var requestAPI = request.post(url).send(params);
|
|
1514
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1515
|
-
|
|
1516
|
-
//Setup token in Authorization header
|
|
1517
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1518
|
-
|
|
1519
|
-
requestAPI.end(function(err, response) {
|
|
1520
|
-
if(err) {
|
|
1521
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1522
|
-
dfd.reject(err);
|
|
1523
|
-
} else {
|
|
1524
|
-
var res = converter.convertClassResponse({data: response.body}) ;
|
|
1525
|
-
dfd.resolve(res);
|
|
1526
|
-
}
|
|
1527
|
-
});
|
|
1528
|
-
} else {
|
|
1529
|
-
err = {};
|
|
1530
|
-
err.message = err.description = 'title or startdate or enddate not found in request options.';
|
|
1531
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1532
|
-
dfd.reject(err);
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
|
-
return dfd.promise;
|
|
1536
|
-
}
|
|
1537
|
-
|
|
1538
|
-
//options = {
|
|
1539
|
-
// classid: 'class id',
|
|
1540
|
-
// title: 'class title', //Optional field
|
|
1541
|
-
// startdate: 'Epoch(Unix) timestamp in milliseconds', //Optional field
|
|
1542
|
-
// enddate: 'Epoch(Unix) timestamp in milliseconds', //Optional field
|
|
1543
|
-
// description: '' //Optional field
|
|
1544
|
-
//}
|
|
1545
|
-
function updateClass(options) {
|
|
1546
|
-
var self = this;
|
|
1547
|
-
|
|
1548
|
-
//Initializing promise
|
|
1549
|
-
var dfd = q.defer();
|
|
1550
|
-
|
|
1551
|
-
//Validations
|
|
1552
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1553
|
-
if(err) {
|
|
1554
|
-
dfd.reject(err);
|
|
1555
|
-
} else {
|
|
1556
|
-
if(options && options.classid &&
|
|
1557
|
-
(options.title || options.startdate || options.enddate || options.description))
|
|
1558
|
-
{
|
|
1559
|
-
//Passed all validations, Contruct API url
|
|
1560
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.specificClass;
|
|
1561
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid });
|
|
1562
|
-
|
|
1563
|
-
//Contruct parameters
|
|
1564
|
-
var params = {};
|
|
1565
|
-
|
|
1566
|
-
//Setup request with URL and Params
|
|
1567
|
-
var requestAPI = request.put(url).send(options);
|
|
1568
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1569
|
-
|
|
1570
|
-
//Setup token in Authorization header
|
|
1571
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1572
|
-
|
|
1573
|
-
requestAPI.end(function(err, response) {
|
|
1574
|
-
if(err) {
|
|
1575
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1576
|
-
dfd.reject(err);
|
|
1577
|
-
} else {
|
|
1578
|
-
dfd.resolve(response.body);
|
|
1579
|
-
}
|
|
1580
|
-
});
|
|
1581
|
-
} else {
|
|
1582
|
-
err = {};
|
|
1583
|
-
err.message = err.description = 'classid and atleast one of update field (title or startdate or enddate or description) required in request options.';
|
|
1584
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1585
|
-
dfd.reject(err);
|
|
1586
|
-
}
|
|
1587
|
-
}
|
|
1588
|
-
return dfd.promise;
|
|
1589
|
-
}
|
|
1590
|
-
|
|
1591
|
-
/** options =
|
|
1592
|
-
*{
|
|
1593
|
-
"space_title": "string",
|
|
1594
|
-
"classes": [
|
|
1595
|
-
{
|
|
1596
|
-
"title": "class tiltle",
|
|
1597
|
-
"startdate": 'Epoch(Unix) timestamp in milliseconds',
|
|
1598
|
-
"enddate": 'Epoch(Unix) timestamp in milliseconds',
|
|
1599
|
-
"rowId": 'string with max limit 3 characters,
|
|
1600
|
-
"description": "string",
|
|
1601
|
-
"model": "STRICT",
|
|
1602
|
-
"owner": {
|
|
1603
|
-
"userid": "string" //Mandatory if model is 'STRICT'
|
|
1604
|
-
},
|
|
1605
|
-
"teachers": [
|
|
1606
|
-
{
|
|
1607
|
-
"userid": "string",
|
|
1608
|
-
"email": "string"
|
|
1609
|
-
"first_name": "string"
|
|
1610
|
-
"last_name": "string"
|
|
1611
|
-
"userid": "string" // optional
|
|
1612
|
-
"ext_user_id": "string" // optional
|
|
1613
|
-
"dls_org_status": "string" // optional
|
|
1614
|
-
"ext_account_status": "string" // optional
|
|
1615
|
-
],
|
|
1616
|
-
"products": [ // optional
|
|
1617
|
-
{
|
|
1618
|
-
"productcode": "string", //mandatory
|
|
1619
|
-
"title": ""
|
|
1620
|
-
},
|
|
1621
|
-
{
|
|
1622
|
-
"productcode": "string", //mandatory
|
|
1623
|
-
"title": ""
|
|
1624
|
-
}
|
|
1625
|
-
]
|
|
1626
|
-
}
|
|
1627
|
-
]
|
|
1628
|
-
}
|
|
1629
|
-
*/
|
|
1630
|
-
function createMultipleClasses(options) {
|
|
1631
|
-
var self = this;
|
|
1632
|
-
|
|
1633
|
-
//Initializing promise
|
|
1634
|
-
var dfd = q.defer();
|
|
1635
|
-
|
|
1636
|
-
//Validations
|
|
1637
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1638
|
-
if (err) { dfd.reject(err); }
|
|
1639
|
-
else {
|
|
1640
|
-
if (options.classes.length > 0) {
|
|
1641
|
-
|
|
1642
|
-
//Passed all validations, Contruct API url
|
|
1643
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.createMultipleClasses;
|
|
1644
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
1645
|
-
orgId: self.orgId
|
|
1646
|
-
});
|
|
1647
|
-
|
|
1648
|
-
//Setup request with URL and Params and Query
|
|
1649
|
-
var requestAPI = request.post(url).send(options);
|
|
1650
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1651
|
-
|
|
1652
|
-
//Setup token in Authorization header
|
|
1653
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1654
|
-
|
|
1655
|
-
requestAPI.end(function (err, response) {
|
|
1656
|
-
if (err) {
|
|
1657
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1658
|
-
dfd.reject(err);
|
|
1659
|
-
}
|
|
1660
|
-
else { dfd.resolve(response.body); }
|
|
1661
|
-
});
|
|
1662
|
-
}
|
|
1663
|
-
else {
|
|
1664
|
-
err = {};
|
|
1665
|
-
err.message = err.description = 'Mandatory parameter classes not found in request options';
|
|
1666
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1667
|
-
dfd.reject(err);
|
|
1668
|
-
}
|
|
1669
|
-
}
|
|
1670
|
-
return dfd.promise;
|
|
1671
|
-
}
|
|
1672
|
-
|
|
1673
|
-
/*
|
|
1674
|
-
options = {
|
|
1675
|
-
"classid": "classid", //mandatory
|
|
1676
|
-
"data": {
|
|
1677
|
-
"title": "assigned path title", //mandatory
|
|
1678
|
-
"duedate": "epoch due date", //mandatory
|
|
1679
|
-
"startdate": "epoch start date", //optional
|
|
1680
|
-
"shared_progress": true, //optional, default=true
|
|
1681
|
-
"path_type": ‘flat’, //optional, default=flat , ['flat', 'hierarchical']
|
|
1682
|
-
"rules": {}, //optional
|
|
1683
|
-
"items": [ //mandatory
|
|
1684
|
-
{
|
|
1685
|
-
"item-code": "required_item-code", //mandatory
|
|
1686
|
-
"item_type": "required_item-type", //mandatory, ['dls-internal','external']
|
|
1687
|
-
"dls_product_code": "product_code" //mandatory only if item_type is 'dls-internal'
|
|
1688
|
-
}
|
|
1689
|
-
],
|
|
1690
|
-
"context": {
|
|
1691
|
-
"bundle-code": "string",
|
|
1692
|
-
"space_key": "string"
|
|
1693
|
-
}
|
|
1694
|
-
}
|
|
1695
|
-
}
|
|
1696
|
-
*/
|
|
1697
|
-
function createAssignedPath(options) {
|
|
1698
|
-
var self = this;
|
|
1699
|
-
var dfd = q.defer();
|
|
1700
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1701
|
-
if(err) { dfd.reject(err); }
|
|
1702
|
-
else {
|
|
1703
|
-
if(options && options.classid && options.data && options.data.title &&
|
|
1704
|
-
options.data.duedate && options.data.items && options.data.items.length > 0) {
|
|
1705
|
-
|
|
1706
|
-
// Passed all validations, Contruct API url
|
|
1707
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.createAssignedPath;
|
|
1708
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid });
|
|
1709
|
-
|
|
1710
|
-
// Setup request with URL and Params
|
|
1711
|
-
var requestAPI = request.post(url)
|
|
1712
|
-
.set('Content-Type', 'application/json')
|
|
1713
|
-
.set('Accept', 'application/json')
|
|
1714
|
-
.send(options.data);
|
|
1715
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1716
|
-
|
|
1717
|
-
//Setup token in Authorization header
|
|
1718
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1719
|
-
|
|
1720
|
-
requestAPI.end(function (error, response) {
|
|
1721
|
-
if(error) {
|
|
1722
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1723
|
-
dfd.reject(err);
|
|
1724
|
-
}
|
|
1725
|
-
else { dfd.resolve(response.body); }
|
|
1726
|
-
});
|
|
1727
|
-
}
|
|
1728
|
-
else {
|
|
1729
|
-
err = {};
|
|
1730
|
-
err.message = err.description = 'Mandatory params - title or classid or duedate or items ' +
|
|
1731
|
-
'not found in request options.';
|
|
1732
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1733
|
-
dfd.reject(err);
|
|
1734
|
-
}
|
|
1735
|
-
}
|
|
1736
|
-
return dfd.promise;
|
|
1737
|
-
}
|
|
1738
|
-
|
|
1739
|
-
/*
|
|
1740
|
-
options = {
|
|
1741
|
-
classid: 'string' //mandatory
|
|
1742
|
-
assignedpathid: 'string' //mandatory
|
|
1743
|
-
}
|
|
1744
|
-
*/
|
|
1745
|
-
function deleteAssignedPath(options) {
|
|
1746
|
-
var self = this;
|
|
1747
|
-
var dfd = q.defer();
|
|
1748
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1749
|
-
if(err) { dfd.reject(err); }
|
|
1750
|
-
else {
|
|
1751
|
-
if(options && options.classid && options.assignedpathid) {
|
|
1752
|
-
|
|
1753
|
-
// Passed all validations, Contruct API url
|
|
1754
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.deleteAssignedPath;
|
|
1755
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid, assignedPathId: options.assignedpathid });
|
|
1756
|
-
|
|
1757
|
-
// Setup request with URL and Params
|
|
1758
|
-
var requestAPI = request.delete(url);
|
|
1759
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1760
|
-
|
|
1761
|
-
//Setup token in Authorization header
|
|
1762
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1763
|
-
|
|
1764
|
-
requestAPI.end(function (error, response) {
|
|
1765
|
-
if(error) {
|
|
1766
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1767
|
-
dfd.reject(err);
|
|
1768
|
-
}
|
|
1769
|
-
else { dfd.resolve(response.body); }
|
|
1770
|
-
});
|
|
1771
|
-
}
|
|
1772
|
-
else {
|
|
1773
|
-
err = {};
|
|
1774
|
-
err.message = err.description = 'Mandatory params - classid or assignedpathid ' +
|
|
1775
|
-
'not found in request options.';
|
|
1776
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1777
|
-
dfd.reject(err);
|
|
1778
|
-
}
|
|
1779
|
-
}
|
|
1780
|
-
return dfd.promise;
|
|
1781
|
-
}
|
|
1782
|
-
|
|
1783
|
-
/*
|
|
1784
|
-
options = {
|
|
1785
|
-
classid: 'string' //mandatory
|
|
1786
|
-
assignedpathid: 'string' //mandatory
|
|
1787
|
-
data:
|
|
1788
|
-
{
|
|
1789
|
-
title: 'string' //optional
|
|
1790
|
-
startdate: 'string' //optional
|
|
1791
|
-
duedate: 'string' //optional
|
|
1792
|
-
}
|
|
1793
|
-
}
|
|
1794
|
-
*/
|
|
1795
|
-
function updateAssignedPath(options) {
|
|
1796
|
-
var self = this;
|
|
1797
|
-
var dfd = q.defer();
|
|
1798
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1799
|
-
if(err) { dfd.reject(err); }
|
|
1800
|
-
else {
|
|
1801
|
-
if(options && options.classid && options.assignedpathid) {
|
|
1802
|
-
|
|
1803
|
-
// Passed all validations, Contruct API url
|
|
1804
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.deleteAssignedPath;
|
|
1805
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid, assignedPathId: options.assignedpathid });
|
|
1806
|
-
|
|
1807
|
-
// Setup request with URL and Params
|
|
1808
|
-
var requestAPI = request.put(url);
|
|
1809
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1810
|
-
if(options.data) { requestAPI.send(options.data); }
|
|
1811
|
-
|
|
1812
|
-
//Setup token in Authorization header
|
|
1813
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1814
|
-
|
|
1815
|
-
requestAPI.end(function (error, response) {
|
|
1816
|
-
if(error) {
|
|
1817
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1818
|
-
dfd.reject(err);
|
|
1819
|
-
}
|
|
1820
|
-
else { dfd.resolve(response.body); }
|
|
1821
|
-
});
|
|
1822
|
-
}
|
|
1823
|
-
else {
|
|
1824
|
-
err = {};
|
|
1825
|
-
err.message = err.description = 'Mandatory params - classid or assignedpathid ' +
|
|
1826
|
-
'not found in request options.';
|
|
1827
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1828
|
-
dfd.reject(err);
|
|
1829
|
-
}
|
|
1830
|
-
}
|
|
1831
|
-
return dfd.promise;
|
|
1832
|
-
}
|
|
1833
|
-
|
|
1834
|
-
/**
|
|
1835
|
-
* options={
|
|
1836
|
-
"title": "string", //mandatory
|
|
1837
|
-
"startdate": 0, //mandatory
|
|
1838
|
-
"enddate": 0, //mandatory
|
|
1839
|
-
"path": "string"
|
|
1840
|
-
}
|
|
1841
|
-
*/
|
|
1842
|
-
function createGroup(options) {
|
|
1843
|
-
var self = this;
|
|
1844
|
-
// Initializing promise
|
|
1845
|
-
var dfd = q.defer();
|
|
1846
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1847
|
-
if(err) { dfd.reject(err); }
|
|
1848
|
-
else {
|
|
1849
|
-
// Validations
|
|
1850
|
-
|
|
1851
|
-
if(options && options.title && options.startdate && options.enddate) {
|
|
1852
|
-
// Passed all validations, Contruct API url
|
|
1853
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.allGroups;
|
|
1854
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId });
|
|
1855
|
-
|
|
1856
|
-
// Setup request with URL and Params
|
|
1857
|
-
var requestAPI = request.post(url)
|
|
1858
|
-
.set('Content-Type', 'application/json')
|
|
1859
|
-
.set('Accept', 'application/json')
|
|
1860
|
-
.send(options);
|
|
1861
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1862
|
-
|
|
1863
|
-
//Setup token in Authorization header
|
|
1864
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1865
|
-
|
|
1866
|
-
requestAPI.end(function(error, response) {
|
|
1867
|
-
if(error) {
|
|
1868
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1869
|
-
dfd.reject(error);
|
|
1870
|
-
}
|
|
1871
|
-
else { dfd.resolve(response); }
|
|
1872
|
-
});
|
|
1873
|
-
}
|
|
1874
|
-
else {
|
|
1875
|
-
err = {};
|
|
1876
|
-
err.message = err.description = 'title or startdate or enddate not found in request options.';
|
|
1877
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1878
|
-
dfd.reject(err);
|
|
1879
|
-
}
|
|
1880
|
-
}
|
|
1881
|
-
return dfd.promise;
|
|
1882
|
-
}
|
|
1883
|
-
|
|
1884
|
-
/* options = {
|
|
1885
|
-
"path": "string" //mandatory, Path of the group(this path group will also be returned,
|
|
1886
|
-
"cursor": "string"
|
|
1887
|
-
};
|
|
1888
|
-
*/
|
|
1889
|
-
function getAllGroupsByPath(options) {
|
|
1890
|
-
var self = this;
|
|
1891
|
-
// Initializing promise
|
|
1892
|
-
var dfd = q.defer();
|
|
1893
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1894
|
-
if(err) { dfd.reject(err); }
|
|
1895
|
-
else {
|
|
1896
|
-
if(options && options.path) {
|
|
1897
|
-
|
|
1898
|
-
// Passed all validations, Contruct API url
|
|
1899
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.allGroups;
|
|
1900
|
-
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId });
|
|
1901
|
-
|
|
1902
|
-
var queryParams = { path: options.path };
|
|
1903
|
-
if(options.cursor) { queryParams.cursor = options.cursor; }
|
|
1904
|
-
|
|
1905
|
-
// Setup request with URL and Params
|
|
1906
|
-
var requestAPI = request.get(url).query(queryParams);
|
|
1907
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1908
|
-
|
|
1909
|
-
//Setup token in Authorization header
|
|
1910
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1911
|
-
|
|
1912
|
-
requestAPI.end(function (error, response) {
|
|
1913
|
-
if(error) {
|
|
1914
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1915
|
-
dfd.reject(err);
|
|
1916
|
-
}
|
|
1917
|
-
else { dfd.resolve(response); }
|
|
1918
|
-
});
|
|
1919
|
-
}
|
|
1920
|
-
else {
|
|
1921
|
-
err = {};
|
|
1922
|
-
err.message = err.description = 'Mandatory params - path not found in request options.';
|
|
1923
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1924
|
-
dfd.reject(err);
|
|
1925
|
-
}
|
|
1926
|
-
}
|
|
1927
|
-
return dfd.promise;
|
|
1928
|
-
}
|
|
1929
|
-
|
|
1930
|
-
/* options = {
|
|
1931
|
-
"groupId": "string" //mandatory
|
|
1932
|
-
};
|
|
1933
|
-
*/
|
|
1934
|
-
function getAGroup(options) {
|
|
1935
|
-
var self = this;
|
|
1936
|
-
// Initializing promise
|
|
1937
|
-
var dfd = q.defer();
|
|
1938
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1939
|
-
if(err) { dfd.reject(err); }
|
|
1940
|
-
else {
|
|
1941
|
-
if(options && options.groupId) {
|
|
1942
|
-
|
|
1943
|
-
// Passed all validations, Contruct API url
|
|
1944
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.aParticularGroup;
|
|
1945
|
-
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId, groupId: options.groupId });
|
|
1946
|
-
|
|
1947
|
-
// Setup request with URL and Params
|
|
1948
|
-
var requestAPI = request.get(url);
|
|
1949
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1950
|
-
|
|
1951
|
-
//Setup token in Authorization header
|
|
1952
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1953
|
-
|
|
1954
|
-
requestAPI.end(function (error, response) {
|
|
1955
|
-
if(error) {
|
|
1956
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1957
|
-
dfd.reject(err);
|
|
1958
|
-
}
|
|
1959
|
-
else { dfd.resolve(response); }
|
|
1960
|
-
});
|
|
1961
|
-
}
|
|
1962
|
-
else {
|
|
1963
|
-
err = {};
|
|
1964
|
-
err.message = err.description = 'Mandatory params - groupId not found in request options.';
|
|
1965
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1966
|
-
dfd.reject(err);
|
|
1967
|
-
}
|
|
1968
|
-
}
|
|
1969
|
-
return dfd.promise;
|
|
1970
|
-
}
|
|
1971
|
-
|
|
1972
|
-
/* options = {
|
|
1973
|
-
"groupId": "string" //mandatory
|
|
1974
|
-
"body": {
|
|
1975
|
-
"title": "string"
|
|
1976
|
-
"startdate": "string",
|
|
1977
|
-
"enddate":"string"
|
|
1978
|
-
}
|
|
1979
|
-
};
|
|
1980
|
-
*/
|
|
1981
|
-
function updateGroup(options) {
|
|
1982
|
-
var self = this;
|
|
1983
|
-
// Initializing promise
|
|
1984
|
-
var dfd = q.defer();
|
|
1985
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1986
|
-
if(err) { dfd.reject(err); }
|
|
1987
|
-
else {
|
|
1988
|
-
if(options && options.groupId) {
|
|
1989
|
-
|
|
1990
|
-
// Passed all validations, Contruct API url
|
|
1991
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.aParticularGroup;
|
|
1992
|
-
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId, groupId: options.groupId });
|
|
1993
|
-
|
|
1994
|
-
// Setup request with URL and Params
|
|
1995
|
-
var requestAPI = request.put(url)
|
|
1996
|
-
.set('Content-Type', 'application/json')
|
|
1997
|
-
.set('Accept', 'application/json')
|
|
1998
|
-
.send(options.body);
|
|
1999
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2000
|
-
|
|
2001
|
-
//Setup token in Authorization header
|
|
2002
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2003
|
-
|
|
2004
|
-
requestAPI.end(function (error, response) {
|
|
2005
|
-
if(error) {
|
|
2006
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2007
|
-
dfd.reject(err);
|
|
2008
|
-
}
|
|
2009
|
-
else { dfd.resolve(response); }
|
|
2010
|
-
});
|
|
2011
|
-
}
|
|
2012
|
-
else {
|
|
2013
|
-
err = {};
|
|
2014
|
-
err.message = err.description = 'Mandatory params - groupId not found in ' +
|
|
2015
|
-
'request options.';
|
|
2016
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2017
|
-
dfd.reject(err);
|
|
2018
|
-
}
|
|
2019
|
-
}
|
|
2020
|
-
return dfd.promise;
|
|
2021
|
-
}
|
|
2022
|
-
|
|
2023
|
-
/* options = {
|
|
2024
|
-
"groupId": "string" //mandatory
|
|
2025
|
-
};
|
|
2026
|
-
*/
|
|
2027
|
-
function deleteGroup(options) {
|
|
2028
|
-
var self = this;
|
|
2029
|
-
// Initializing promise
|
|
2030
|
-
var dfd = q.defer();
|
|
2031
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2032
|
-
if(err) { dfd.reject(err); }
|
|
2033
|
-
else {
|
|
2034
|
-
if(options && options.groupId) {
|
|
2035
|
-
|
|
2036
|
-
// Passed all validations, Contruct API url
|
|
2037
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.aParticularGroup;
|
|
2038
|
-
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId, groupId: options.groupId });
|
|
2039
|
-
|
|
2040
|
-
// Setup request with URL and Params
|
|
2041
|
-
var requestAPI = request.delete(url);
|
|
2042
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2043
|
-
|
|
2044
|
-
//Setup token in Authorization header
|
|
2045
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2046
|
-
|
|
2047
|
-
requestAPI.end(function (error, response) {
|
|
2048
|
-
if(error) {
|
|
2049
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2050
|
-
dfd.reject(err);
|
|
2051
|
-
}
|
|
2052
|
-
else { dfd.resolve(response); }
|
|
2053
|
-
});
|
|
2054
|
-
}
|
|
2055
|
-
else {
|
|
2056
|
-
err = {};
|
|
2057
|
-
err.message = err.description = 'Mandatory params - groupId not found in ' +
|
|
2058
|
-
'request options.';
|
|
2059
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2060
|
-
dfd.reject(err);
|
|
2061
|
-
}
|
|
2062
|
-
}
|
|
2063
|
-
return dfd.promise;
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
/*
|
|
2067
|
-
options = {
|
|
2068
|
-
groupId: "string", //mandatory
|
|
2069
|
-
cursor: "cursor"
|
|
2070
|
-
}
|
|
2071
|
-
*/
|
|
2072
|
-
function getAllMembersOfAGroup(options) {
|
|
2073
|
-
var self = this;
|
|
2074
|
-
// Initializing promise
|
|
2075
|
-
var dfd = q.defer(), params = {};
|
|
2076
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2077
|
-
if(err) { dfd.reject(err); }
|
|
2078
|
-
// Validations
|
|
2079
|
-
else{
|
|
2080
|
-
if(options && options.groupId) {
|
|
2081
|
-
// Passed all validations, Contruct API url
|
|
2082
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2083
|
-
self.config.AUTH_API_URLS.getAllMembersOfAGroup;
|
|
2084
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
2085
|
-
orgId: self.orgId,
|
|
2086
|
-
groupId: options.groupId
|
|
2087
|
-
});
|
|
2088
|
-
|
|
2089
|
-
// Setup request with URL and Param
|
|
2090
|
-
if(options.cursor){ params.cursor = options.cursor };
|
|
2091
|
-
|
|
2092
|
-
var requestAPI = request.get(url)
|
|
2093
|
-
.set('Content-Type', 'application/json')
|
|
2094
|
-
.set('Accept', 'application/json')
|
|
2095
|
-
.send(params);
|
|
2096
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2097
|
-
|
|
2098
|
-
//Setup token in Authorization header
|
|
2099
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2100
|
-
|
|
2101
|
-
requestAPI.end(function(error, response) {
|
|
2102
|
-
if(error) {
|
|
2103
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2104
|
-
dfd.reject(error);
|
|
2105
|
-
}
|
|
2106
|
-
else { dfd.resolve(response); }
|
|
2107
|
-
});
|
|
2108
|
-
} else {
|
|
2109
|
-
err = {};
|
|
2110
|
-
err.message = err.description = 'Mandatory param - groupId not found in request options.';
|
|
2111
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2112
|
-
dfd.reject(err);
|
|
2113
|
-
}
|
|
2114
|
-
}
|
|
2115
|
-
return dfd.promise;
|
|
2116
|
-
}
|
|
2117
|
-
|
|
2118
|
-
/*
|
|
2119
|
-
options = {
|
|
2120
|
-
path: "string", //mandatory
|
|
2121
|
-
cursor: "string"
|
|
2122
|
-
}
|
|
2123
|
-
*/
|
|
2124
|
-
function getAllGroupMembersByPath(options) {
|
|
2125
|
-
var self = this;
|
|
2126
|
-
// Initializing promise
|
|
2127
|
-
var dfd = q.defer(), params = {};
|
|
2128
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2129
|
-
if(err) { dfd.reject(err); }
|
|
2130
|
-
// Validations
|
|
2131
|
-
else {
|
|
2132
|
-
if(options && options.path) {
|
|
2133
|
-
// Passed all validations, Contruct API url
|
|
2134
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2135
|
-
self.config.AUTH_API_URLS.getAllGroupMembersByPath;
|
|
2136
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
2137
|
-
orgId: self.orgId
|
|
2138
|
-
});
|
|
2139
|
-
|
|
2140
|
-
// Setup request with URL and Params
|
|
2141
|
-
params.path = options.path;
|
|
2142
|
-
if(options.cursor){ params.cursor = options.cursor };
|
|
2143
|
-
|
|
2144
|
-
var requestAPI = request.get(url)
|
|
2145
|
-
.set('Content-Type', 'application/json')
|
|
2146
|
-
.set('Accept', 'application/json')
|
|
2147
|
-
.query(params);
|
|
2148
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2149
|
-
|
|
2150
|
-
//Setup token in Authorization header
|
|
2151
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2152
|
-
|
|
2153
|
-
requestAPI.end(function(error, response) {
|
|
2154
|
-
if(error) {
|
|
2155
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2156
|
-
dfd.reject(error);
|
|
2157
|
-
}
|
|
2158
|
-
else { dfd.resolve(response); }
|
|
2159
|
-
});
|
|
2160
|
-
} else {
|
|
2161
|
-
err = {};
|
|
2162
|
-
err.message = err.description = 'Mandatory param - path not found in request options.';
|
|
2163
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2164
|
-
dfd.reject(err);
|
|
2165
|
-
}
|
|
2166
|
-
}
|
|
2167
|
-
return dfd.promise;
|
|
2168
|
-
}
|
|
2169
|
-
|
|
2170
|
-
/*
|
|
2171
|
-
options = {
|
|
2172
|
-
|
|
2173
|
-
groupId: "string", //mandatory
|
|
2174
|
-
body: {
|
|
2175
|
-
users: [
|
|
2176
|
-
{
|
|
2177
|
-
id: "string", // User’s external id - mandatory
|
|
2178
|
-
dls_user_id: "string", // User’s dls id - mandatory
|
|
2179
|
-
email: "string", //mandatory
|
|
2180
|
-
first_name: "string", //mandatory
|
|
2181
|
-
last_name: "string", //mandatory
|
|
2182
|
-
name: "string", //mandatory
|
|
2183
|
-
role: "string" //mandatory
|
|
2184
|
-
}
|
|
2185
|
-
]
|
|
2186
|
-
}
|
|
2187
|
-
}
|
|
2188
|
-
*/
|
|
2189
|
-
function createMultiUserGroupMembership(options) {
|
|
2190
|
-
var self = this;
|
|
2191
|
-
// Initializing promise
|
|
2192
|
-
var dfd = q.defer(), params = {};
|
|
2193
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2194
|
-
if(err) { dfd.reject(err); }
|
|
2195
|
-
// Validations
|
|
2196
|
-
|
|
2197
|
-
else {
|
|
2198
|
-
if(options && options.groupId && options.body && options.body.users && (options.body.users.length > 0)) {
|
|
2199
|
-
// Passed all validations, Contruct API url
|
|
2200
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2201
|
-
self.config.AUTH_API_URLS.userGroupMembership;
|
|
2202
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, groupId: options.groupId });
|
|
2203
|
-
|
|
2204
|
-
// Setup request with URL and Params
|
|
2205
|
-
params = options.body;
|
|
2206
|
-
|
|
2207
|
-
var requestAPI = request.post(url)
|
|
2208
|
-
.set('Content-Type', 'application/json')
|
|
2209
|
-
.set('Accept', 'application/json')
|
|
2210
|
-
.send(params);
|
|
2211
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2212
|
-
//Setup token in Authorization header
|
|
2213
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2214
|
-
|
|
2215
|
-
requestAPI.end(function(error, response) {
|
|
2216
|
-
if(error) {
|
|
2217
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2218
|
-
dfd.reject(error);
|
|
2219
|
-
}
|
|
2220
|
-
else { dfd.resolve(response); }
|
|
2221
|
-
});
|
|
2222
|
-
} else {
|
|
2223
|
-
err = {};
|
|
2224
|
-
err.message = err.description = 'Mandatory param - groupId or body or body.users(min. 1 user) ' +
|
|
2225
|
-
'not found in request options.'
|
|
2226
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2227
|
-
dfd.reject(err);
|
|
2228
|
-
}
|
|
2229
|
-
}
|
|
2230
|
-
return dfd.promise;
|
|
2231
|
-
}
|
|
2232
|
-
|
|
2233
|
-
/*
|
|
2234
|
-
options = {
|
|
2235
|
-
"groupId": "string", //mandatory
|
|
2236
|
-
"body": { //mandatory
|
|
2237
|
-
users: [ //mandatory
|
|
2238
|
-
{
|
|
2239
|
-
id: "string" // User’s external id - mandatory
|
|
2240
|
-
}
|
|
2241
|
-
]
|
|
2242
|
-
}
|
|
2243
|
-
*/
|
|
2244
|
-
function deleteMultiUserGroupMembership(options) {
|
|
2245
|
-
var self = this;
|
|
2246
|
-
// Initializing promise
|
|
2247
|
-
var dfd = q.defer(), params = {};
|
|
2248
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2249
|
-
if(err) { dfd.reject(err); }
|
|
2250
|
-
// Validations
|
|
2251
|
-
else {
|
|
2252
|
-
if(options && options.groupId && options.body && options.body.users && (options.body.users.length > 0)) {
|
|
2253
|
-
// Passed all validations, Contruct API url
|
|
2254
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2255
|
-
self.config.AUTH_API_URLS.userGroupMembership;
|
|
2256
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
2257
|
-
orgId: self.orgId,
|
|
2258
|
-
groupId: options.groupId
|
|
2259
|
-
});
|
|
2260
|
-
|
|
2261
|
-
// Setup request with URL and Params
|
|
2262
|
-
params = options.body;
|
|
2263
|
-
var requestAPI = request.delete(url)
|
|
2264
|
-
.set('Content-Type', 'application/json')
|
|
2265
|
-
.set('Accept', 'application/json')
|
|
2266
|
-
.send(params);
|
|
2267
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2268
|
-
|
|
2269
|
-
//Setup token in Authorization header
|
|
2270
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2271
|
-
requestAPI.end(function(error, response) {
|
|
2272
|
-
if(error) {
|
|
2273
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2274
|
-
dfd.reject(error);
|
|
2275
|
-
}
|
|
2276
|
-
else { dfd.resolve(response); }
|
|
2277
|
-
});
|
|
2278
|
-
} else {
|
|
2279
|
-
err = {};
|
|
2280
|
-
err.message = err.description = 'Mandatory param - groupId or body or body.users(min. 1 user) ' +
|
|
2281
|
-
'not found in request options.'
|
|
2282
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2283
|
-
dfd.reject(err);
|
|
2284
|
-
}
|
|
2285
|
-
}
|
|
2286
|
-
return dfd.promise;
|
|
2287
|
-
}
|
|
2288
|
-
|
|
2289
|
-
/* options= {
|
|
2290
|
-
"groupId": "string", //mandatory
|
|
2291
|
-
};
|
|
2292
|
-
*/
|
|
2293
|
-
function archiveGroup(options) {
|
|
2294
|
-
var self = this;
|
|
2295
|
-
// Initializing promise
|
|
2296
|
-
var dfd = q.defer();
|
|
2297
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2298
|
-
if(err) { dfd.reject(err); }
|
|
2299
|
-
else {
|
|
2300
|
-
if (options && options.groupId) {
|
|
2301
|
-
// Passed all validations, Contruct API url
|
|
2302
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.archiveAParticularGroup;
|
|
2303
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
2304
|
-
orgId: self.orgId,
|
|
2305
|
-
groupId: options.groupId
|
|
2306
|
-
});
|
|
2307
|
-
|
|
2308
|
-
// Setup request with URL and Params
|
|
2309
|
-
var requestAPI = request.put(url)
|
|
2310
|
-
.set('Content-Type', 'application/json')
|
|
2311
|
-
.set('Accept', 'application/json')
|
|
2312
|
-
.send({});
|
|
2313
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2314
|
-
|
|
2315
|
-
//Setup token in Authorization header
|
|
2316
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2317
|
-
|
|
2318
|
-
requestAPI.end(function (error, response) {
|
|
2319
|
-
if (error) {
|
|
2320
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2321
|
-
dfd.reject(err);
|
|
2322
|
-
} else {
|
|
2323
|
-
dfd.resolve(response.body);
|
|
2324
|
-
}
|
|
2325
|
-
});
|
|
2326
|
-
}
|
|
2327
|
-
else {
|
|
2328
|
-
err = {};
|
|
2329
|
-
err.message = err.description = 'Mandatory param - groupId not found in request options.';
|
|
2330
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2331
|
-
dfd.reject(err);
|
|
2332
|
-
}
|
|
2333
|
-
}
|
|
2334
|
-
return dfd.promise;
|
|
2335
|
-
}
|
|
2336
|
-
|
|
2337
|
-
/* options= {
|
|
2338
|
-
"groupId": "string", //mandatory
|
|
2339
|
-
};
|
|
2340
|
-
*/
|
|
2341
|
-
function unarchiveGroup(options) {
|
|
2342
|
-
var self = this;
|
|
2343
|
-
// Initializing promise
|
|
2344
|
-
var dfd = q.defer();
|
|
2345
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2346
|
-
if(err) { dfd.reject(err); }
|
|
2347
|
-
else {
|
|
2348
|
-
if (options && options.groupId) {
|
|
2349
|
-
// Passed all validations, Contruct API url
|
|
2350
|
-
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.unarchiveAParticularGroup;
|
|
2351
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
2352
|
-
orgId: self.orgId,
|
|
2353
|
-
groupId: options.groupId
|
|
2354
|
-
});
|
|
2355
|
-
|
|
2356
|
-
// Setup request with URL and Params
|
|
2357
|
-
var requestAPI = request.put(url)
|
|
2358
|
-
.set('Content-Type', 'application/json')
|
|
2359
|
-
.set('Accept', 'application/json')
|
|
2360
|
-
.send({});
|
|
2361
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2362
|
-
|
|
2363
|
-
//Setup token in Authorization header
|
|
2364
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2365
|
-
|
|
2366
|
-
requestAPI.end(function (error, response) {
|
|
2367
|
-
if (error) {
|
|
2368
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2369
|
-
dfd.reject(err);
|
|
2370
|
-
} else {
|
|
2371
|
-
dfd.resolve(response.body);
|
|
2372
|
-
}
|
|
2373
|
-
});
|
|
2374
|
-
}
|
|
2375
|
-
else {
|
|
2376
|
-
err = {};
|
|
2377
|
-
err.message = err.description = 'Mandatory param - groupId not found in request options.';
|
|
2378
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2379
|
-
dfd.reject(err);
|
|
2380
|
-
}
|
|
2381
|
-
}
|
|
2382
|
-
return dfd.promise;
|
|
2383
|
-
}
|
|
2384
|
-
|
|
2385
|
-
/*
|
|
2386
|
-
options = {
|
|
2387
|
-
userId: "string", //mandatory
|
|
2388
|
-
path: "string", //mandatory
|
|
2389
|
-
cursor: "string", // optional
|
|
2390
|
-
}
|
|
2391
|
-
*/
|
|
2392
|
-
function getMyAllMemberships(options) {
|
|
2393
|
-
var self = this;
|
|
2394
|
-
// Initializing promise
|
|
2395
|
-
var dfd = q.defer(), params = {};
|
|
2396
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2397
|
-
if(err) { dfd.reject(err); }
|
|
2398
|
-
// Validations
|
|
2399
|
-
else {
|
|
2400
|
-
if(options && options.userId && options.path) {
|
|
2401
|
-
// Passed all validations, Contruct API url
|
|
2402
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2403
|
-
self.config.AUTH_API_URLS.getMyAllMemberships;
|
|
2404
|
-
url = helpers.api.constructAPIUrl(url, {
|
|
2405
|
-
orgId: self.orgId,
|
|
2406
|
-
userId: options.userId
|
|
2407
|
-
});
|
|
2408
|
-
|
|
2409
|
-
// Setup request with URL and Params
|
|
2410
|
-
params.path = options.path;
|
|
2411
|
-
if(options.cursor){ params.cursor = options.cursor };
|
|
2412
|
-
|
|
2413
|
-
var requestAPI = request.get(url)
|
|
2414
|
-
.set('Content-Type', 'application/json')
|
|
2415
|
-
.set('Accept', 'application/json')
|
|
2416
|
-
.query(params);
|
|
2417
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2418
|
-
|
|
2419
|
-
//Setup token in Authorization header
|
|
2420
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2421
|
-
|
|
2422
|
-
requestAPI.end(function(error, response) {
|
|
2423
|
-
if(error) {
|
|
2424
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2425
|
-
dfd.reject(error);
|
|
2426
|
-
}
|
|
2427
|
-
else { dfd.resolve(response); }
|
|
2428
|
-
});
|
|
2429
|
-
} else {
|
|
2430
|
-
err = {};
|
|
2431
|
-
err.message = err.description = 'Mandatory param - userId or path not found in request options.';
|
|
2432
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2433
|
-
dfd.reject(err);
|
|
2434
|
-
}
|
|
2435
|
-
}
|
|
2436
|
-
return dfd.promise;
|
|
2437
|
-
}
|
|
2438
|
-
|
|
2439
|
-
/*
|
|
2440
|
-
options = {
|
|
2441
|
-
classId: "string", //mandatory
|
|
2442
|
-
body : {
|
|
2443
|
-
items : //mandatory, Min: 1, Max: 200
|
|
2444
|
-
[{
|
|
2445
|
-
"productcode": "string",
|
|
2446
|
-
"item-code": "string",
|
|
2447
|
-
"link-statementid": "string",
|
|
2448
|
-
"groupid": "string",
|
|
2449
|
-
“type”: “dls-internal”, //mandatory
|
|
2450
|
-
"data": { ... }
|
|
2451
|
-
}]
|
|
2452
|
-
}
|
|
2453
|
-
}
|
|
2454
|
-
*/
|
|
2455
|
-
function addItemsToShowcaseOfAClass(options){
|
|
2456
|
-
var self = this;
|
|
2457
|
-
// Initializing promise
|
|
2458
|
-
var dfd = q.defer();
|
|
2459
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2460
|
-
if(err) { dfd.reject(err); }
|
|
2461
|
-
// Validations
|
|
2462
|
-
else {
|
|
2463
|
-
if(options && options.classId && options.body) {
|
|
2464
|
-
// Passed all validations, Contruct API url
|
|
2465
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2466
|
-
self.config.AUTH_API_URLS.showcaseItems;
|
|
2467
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classId });
|
|
2468
|
-
|
|
2469
|
-
// Setup request with URL and Params
|
|
2470
|
-
var requestAPI = request.post(url);
|
|
2471
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2472
|
-
requestAPI.send(options.body);
|
|
2473
|
-
|
|
2474
|
-
// Setup token in Authorization header
|
|
2475
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2476
|
-
|
|
2477
|
-
// Call Add items to showcase API
|
|
2478
|
-
requestAPI.end(function(err, response) {
|
|
2479
|
-
if(err) {
|
|
2480
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
2481
|
-
dfd.reject(err);
|
|
2482
|
-
}
|
|
2483
|
-
else { dfd.resolve(response.body); }
|
|
2484
|
-
});
|
|
2485
|
-
} else {
|
|
2486
|
-
err = {};
|
|
2487
|
-
err.message = err.description = 'Mandatory param - classId or body not found in request options.';
|
|
2488
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2489
|
-
dfd.reject(err);
|
|
2490
|
-
}
|
|
2491
|
-
}
|
|
2492
|
-
return dfd.promise;
|
|
2493
|
-
}
|
|
2494
|
-
|
|
2495
|
-
/*
|
|
2496
|
-
options = {
|
|
2497
|
-
classId: "string", //mandatory
|
|
2498
|
-
body : {
|
|
2499
|
-
items : [ "id1", "id2", "id3", ... ] //mandatory
|
|
2500
|
-
}
|
|
2501
|
-
}
|
|
2502
|
-
*/
|
|
2503
|
-
function deleteItemsFromShowcaseOfAClass(options){
|
|
2504
|
-
var self = this;
|
|
2505
|
-
// Initializing promise
|
|
2506
|
-
var dfd = q.defer();
|
|
2507
|
-
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2508
|
-
if(err) { dfd.reject(err); }
|
|
2509
|
-
// Validations
|
|
2510
|
-
else {
|
|
2511
|
-
if(options && options.classId && options.body) {
|
|
2512
|
-
// Passed all validations, Contruct API url
|
|
2513
|
-
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2514
|
-
self.config.AUTH_API_URLS.showcaseItems;
|
|
2515
|
-
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classId });
|
|
2516
|
-
|
|
2517
|
-
// Setup request with URL and Params
|
|
2518
|
-
var requestAPI = request.delete(url);
|
|
2519
|
-
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2520
|
-
requestAPI.send(options.body);
|
|
2521
|
-
|
|
2522
|
-
// Setup token in Authorization header
|
|
2523
|
-
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2524
|
-
|
|
2525
|
-
// Call delete items from showcase API
|
|
2526
|
-
requestAPI.end(function(err, response) {
|
|
2527
|
-
if(err) {
|
|
2528
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
2529
|
-
dfd.reject(err);
|
|
2530
|
-
}
|
|
2531
|
-
else { dfd.resolve(response.body); }
|
|
2532
|
-
});
|
|
2533
|
-
} else {
|
|
2534
|
-
err = {};
|
|
2535
|
-
err.message = err.description = 'Mandatory param - classId or body not found in request options.';
|
|
2536
|
-
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2537
|
-
dfd.reject(err);
|
|
2538
|
-
}
|
|
2539
|
-
}
|
|
2540
|
-
return dfd.promise;
|
|
2541
|
-
}
|
|
1
|
+
/*************************************************************************
|
|
2
|
+
*
|
|
3
|
+
* COMPRO CONFIDENTIAL
|
|
4
|
+
* __________________
|
|
5
|
+
*
|
|
6
|
+
* [2015] - [2020] Compro Technologies Private Limited
|
|
7
|
+
* All Rights Reserved.
|
|
8
|
+
*
|
|
9
|
+
* NOTICE: All information contained herein is, and remains
|
|
10
|
+
* the property of Compro Technologies Private Limited. The
|
|
11
|
+
* intellectual and technical concepts contained herein are
|
|
12
|
+
* proprietary to Compro Technologies Private Limited and may
|
|
13
|
+
* be covered by U.S. and Foreign Patents, patents in process,
|
|
14
|
+
* and are protected by trade secret or copyright law.
|
|
15
|
+
*
|
|
16
|
+
* Dissemination of this information or reproduction of this material
|
|
17
|
+
* is strictly forbidden unless prior written permission is obtained
|
|
18
|
+
* from Compro Technologies Pvt. Ltd..
|
|
19
|
+
***************************************************************************/
|
|
20
|
+
|
|
21
|
+
/***********************************************************
|
|
22
|
+
* comproDLS SDK AUTH API Adaptor
|
|
23
|
+
* Functions for calling AUTH API.
|
|
24
|
+
************************************************************/
|
|
25
|
+
|
|
26
|
+
var q = require('q');
|
|
27
|
+
var request = require('superagent');
|
|
28
|
+
|
|
29
|
+
var helpers = require('../../helpers');
|
|
30
|
+
var converter = require('../../helpers/lib/api/converter');
|
|
31
|
+
|
|
32
|
+
var DLSError = helpers.errors.DLSError;
|
|
33
|
+
|
|
34
|
+
/*********************************
|
|
35
|
+
* Setting Up Module Entry Point
|
|
36
|
+
**********************************/
|
|
37
|
+
module.exports = auth;
|
|
38
|
+
//Auth Adaptor Contsructor
|
|
39
|
+
function auth() {
|
|
40
|
+
return {
|
|
41
|
+
pisImport: pisImport.bind(this),
|
|
42
|
+
|
|
43
|
+
getAllUsers: getAllUsers.bind(this),
|
|
44
|
+
getUserProfile: getUserProfile.bind(this),
|
|
45
|
+
deleteUserProfile: deleteUserProfile.bind(this),
|
|
46
|
+
updateUserRole: updateUserRole.bind(this),
|
|
47
|
+
getUserClasses: getUserClasses.bind(this),
|
|
48
|
+
getClassUsers: getClassUsers.bind(this),
|
|
49
|
+
enrollUsertoClass: enrollUsertoClass.bind(this),
|
|
50
|
+
enrollSelftoClass: enrollSelftoClass.bind(this),
|
|
51
|
+
enrollMultiUserstoClass: enrollMultiUserstoClass.bind(this),
|
|
52
|
+
unEnrollMultiUserstoClass: unEnrollMultiUserstoClass.bind(this),
|
|
53
|
+
unEnrollUsertoClass: unEnrollUsertoClass.bind(this),
|
|
54
|
+
|
|
55
|
+
getOrgSettings: getOrgSettings.bind(this),
|
|
56
|
+
updateOrgSettings: updateOrgSettings.bind(this),
|
|
57
|
+
generateClassCode: generateClassCode.bind(this),
|
|
58
|
+
|
|
59
|
+
getAllJobs: getAllJobs.bind(this),
|
|
60
|
+
getJob: getJob.bind(this),
|
|
61
|
+
|
|
62
|
+
createClass: createClass.bind(this),
|
|
63
|
+
updateClass: updateClass.bind(this),
|
|
64
|
+
createMultipleClasses: createMultipleClasses.bind(this),
|
|
65
|
+
getAllClasses: getAllClasses.bind(this),
|
|
66
|
+
getParticularClass: getParticularClass.bind(this),
|
|
67
|
+
getParticularShadowClass: getParticularShadowClass.bind(this),
|
|
68
|
+
createClassProductAssociation: createClassProductAssociation.bind(this),
|
|
69
|
+
removeClassProductAssociation: removeClassProductAssociation.bind(this),
|
|
70
|
+
addItemsToShowcaseOfAClass: addItemsToShowcaseOfAClass.bind(this),
|
|
71
|
+
deleteItemsFromShowcaseOfAClass: deleteItemsFromShowcaseOfAClass.bind(this),
|
|
72
|
+
|
|
73
|
+
getClassAppdata: getClassAppdata.bind(this),
|
|
74
|
+
putClassAppdata: putClassAppdata.bind(this),
|
|
75
|
+
deleteClassAppdata: deleteClassAppdata.bind(this),
|
|
76
|
+
|
|
77
|
+
encodeURLParameter: encodeURLParameter.bind(this),
|
|
78
|
+
|
|
79
|
+
createAssignedPath: createAssignedPath.bind(this),
|
|
80
|
+
deleteAssignedPath: deleteAssignedPath.bind(this),
|
|
81
|
+
updateAssignedPath: updateAssignedPath.bind(this),
|
|
82
|
+
|
|
83
|
+
//Groups related APIs
|
|
84
|
+
createGroup: createGroup.bind(this),
|
|
85
|
+
getAllGroupsByPath: getAllGroupsByPath.bind(this),
|
|
86
|
+
getAGroup: getAGroup.bind(this),
|
|
87
|
+
updateGroup: updateGroup.bind(this),
|
|
88
|
+
deleteGroup: deleteGroup.bind(this),
|
|
89
|
+
getAllMembersOfAGroup: getAllMembersOfAGroup.bind(this),
|
|
90
|
+
getAllGroupMembersByPath: getAllGroupMembersByPath.bind(this),
|
|
91
|
+
createMultiUserGroupMembership: createMultiUserGroupMembership.bind(this),
|
|
92
|
+
deleteMultiUserGroupMembership: deleteMultiUserGroupMembership.bind(this),
|
|
93
|
+
getMyAllMemberships: getMyAllMemberships.bind(this),
|
|
94
|
+
archiveGroup: archiveGroup.bind(this),
|
|
95
|
+
unarchiveGroup: unarchiveGroup.bind(this)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/*********************************
|
|
100
|
+
* Public Function definitions
|
|
101
|
+
**********************************/
|
|
102
|
+
|
|
103
|
+
//options = {
|
|
104
|
+
// userid: 'uuid or username', //optional.
|
|
105
|
+
//}
|
|
106
|
+
function getUserProfile(options) {
|
|
107
|
+
/* Reference to comproDLS SDK object , contains the following properties
|
|
108
|
+
* 1. self.orgId [String] : organization Id
|
|
109
|
+
* 2. self.token [Object] : DLS token. It has following structure
|
|
110
|
+
* {
|
|
111
|
+
* "access_token" : [String]
|
|
112
|
+
* }
|
|
113
|
+
*/
|
|
114
|
+
var self = this;
|
|
115
|
+
// Initializing promise
|
|
116
|
+
var dfd = q.defer();
|
|
117
|
+
// Validations
|
|
118
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
119
|
+
if(err) { dfd.reject(err); }
|
|
120
|
+
else {
|
|
121
|
+
var userid = 'me';
|
|
122
|
+
if(options) {
|
|
123
|
+
if(options.userid) { userid = options.userid; }
|
|
124
|
+
}
|
|
125
|
+
// Passed all validations, Contruct API url
|
|
126
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
127
|
+
self.config.AUTH_API_URLS.userInfoAPI;
|
|
128
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, userId: userid });
|
|
129
|
+
|
|
130
|
+
// Contruct parameters
|
|
131
|
+
var params = {};
|
|
132
|
+
|
|
133
|
+
// Setup request with URL and Params
|
|
134
|
+
var requestAPI = request.get(url).query(params);
|
|
135
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
136
|
+
|
|
137
|
+
// Setup token in Authorization header
|
|
138
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
139
|
+
// Call GET USER INFO Api
|
|
140
|
+
requestAPI.end(function(err, response) {
|
|
141
|
+
if(err) {
|
|
142
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
143
|
+
dfd.reject(err);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
var res = converter.convertUserResponse({data: response.body});
|
|
147
|
+
dfd.resolve(res);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return dfd.promise;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* options = {
|
|
156
|
+
* userid : "" // dls user id, mandatory
|
|
157
|
+
* }
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
function deleteUserProfile(options) {
|
|
161
|
+
var self = this;
|
|
162
|
+
var dfd = q.defer();
|
|
163
|
+
|
|
164
|
+
// Validations
|
|
165
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
166
|
+
if(err) { dfd.reject(err); }
|
|
167
|
+
else {
|
|
168
|
+
if (options.userid) {
|
|
169
|
+
var userid = options.userid;
|
|
170
|
+
|
|
171
|
+
// Passed all validations, Contruct API url
|
|
172
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
173
|
+
self.config.AUTH_API_URLS.userInfoAPI;
|
|
174
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, userId: userid });
|
|
175
|
+
|
|
176
|
+
// Setup request with URL
|
|
177
|
+
var requestAPI = request.delete(url);
|
|
178
|
+
if (self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
179
|
+
|
|
180
|
+
// Setup token in Authorization header
|
|
181
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
182
|
+
|
|
183
|
+
// Call DELETE USER API
|
|
184
|
+
requestAPI.end(function (error, response) {
|
|
185
|
+
if (error) {
|
|
186
|
+
error = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
187
|
+
dfd.reject(error);
|
|
188
|
+
}
|
|
189
|
+
else { dfd.resolve(response.body); }
|
|
190
|
+
});
|
|
191
|
+
} else {
|
|
192
|
+
err = {};
|
|
193
|
+
err.message = err.description = 'Mandatory parameter userid not found in request options.';
|
|
194
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
195
|
+
dfd.reject(err);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return dfd.promise;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
//options = {
|
|
202
|
+
// search: 'search string', //optional.
|
|
203
|
+
// lookup: 'string', // Search query (',' separated key value pairs), e.g. key1:val1,key2:val2,key3:val3
|
|
204
|
+
// lookup-operator: 'AND'/'OR', // Operator to use while lookup. Current Possible Value - AND, OR
|
|
205
|
+
// cursor: 'cursor', //optional, cursor to get next set of groups.
|
|
206
|
+
// limit: number, //optional, limit the number of Users to fetch at a time.
|
|
207
|
+
// role: 'string' //optional, to search Users by Role
|
|
208
|
+
// sortField: ['first_name', 'last_name', 'ext_email', 'created', 'roles', ... (other fields of response entity)]
|
|
209
|
+
// Sort the result according to given field. By default is 'last_name’, followed by ‘first_name’ in asc order.
|
|
210
|
+
// sortOrder: ['desc', 'asc'] //optional, By default is 'desc’.
|
|
211
|
+
//}
|
|
212
|
+
function getAllUsers(options) {
|
|
213
|
+
var self = this;
|
|
214
|
+
// Initializing promise
|
|
215
|
+
var dfd = q.defer();
|
|
216
|
+
// Validations
|
|
217
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
218
|
+
if(err) { dfd.reject(err); }
|
|
219
|
+
else {
|
|
220
|
+
var queryStr = 'orgid:"' + self.orgId + '"';
|
|
221
|
+
|
|
222
|
+
if(options.lookup && options['lookup-operator']) {
|
|
223
|
+
var lookupString = options.lookup;
|
|
224
|
+
lookupString = lookupString.replace(/ext_/ig, '');
|
|
225
|
+
var lookupArray = lookupString.split(',').map(function(item) {
|
|
226
|
+
var lookupItem = item.trim();
|
|
227
|
+
var tempArr = lookupItem.split(':');
|
|
228
|
+
lookupItem = '(' + lookupItem + ' OR ' + tempArr[0] + '.keyword:' + tempArr[1] + ')';
|
|
229
|
+
return lookupItem;
|
|
230
|
+
});
|
|
231
|
+
queryStr = queryStr + ' AND (' + lookupArray.join(' ' + options['lookup-operator'] + ' ') + ')';
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
if(options.role) {
|
|
235
|
+
var roleNameString = options.role;
|
|
236
|
+
var roleNameArray = roleNameString.split(',').map(function(item) { return item.trim(); });
|
|
237
|
+
for(var idx in roleNameArray){
|
|
238
|
+
roleNameArray[idx] = 'roles:' + roleNameArray[idx];
|
|
239
|
+
}
|
|
240
|
+
queryStr = queryStr + ' AND (' + roleNameArray.join(' OR ') + ')';
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if(options.search) {
|
|
244
|
+
queryStr = queryStr + ' AND (email:"' + options.search + '" OR first_name:"' + options.search + '" OR last_name:"'
|
|
245
|
+
+ options.search + '" OR username:"' + options.search + '" OR userid:"' + options.search + '")';
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
var sortField = options.sortField || '';
|
|
249
|
+
sortField = sortField.replace(/ext_/ig, '').split(',').shift().trim() || 'last_name';
|
|
250
|
+
var sortOrder = options.sortOrder || 'asc';
|
|
251
|
+
if(sortField !== 'created') {
|
|
252
|
+
sortField = sortField + '.keyword';
|
|
253
|
+
}
|
|
254
|
+
var sortObj = {}, sortArr = [];
|
|
255
|
+
sortObj[sortField] = sortOrder;
|
|
256
|
+
sortArr.push(sortObj);
|
|
257
|
+
|
|
258
|
+
var queryObj = {
|
|
259
|
+
query: { query_string: { query: queryStr } },
|
|
260
|
+
sort: sortArr
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
if(options.cursor) { queryObj.search_after = JSON.parse(options.cursor); }
|
|
264
|
+
if(options.limit) { queryObj.size = options.limit; }
|
|
265
|
+
else { options.limit = 10; } // by default ES returns only 10 elements at max.
|
|
266
|
+
|
|
267
|
+
//Passed all validations, Construct API url
|
|
268
|
+
var url = self.config.DEFAULT_HOSTS.INTEGRATION +
|
|
269
|
+
self.config.INTEGRATIONS_API_URLS.queryDataFromSearch;
|
|
270
|
+
url = helpers.api.constructAPIUrl(url, { index: 'users' });
|
|
271
|
+
|
|
272
|
+
// Contruct parameters
|
|
273
|
+
var params = {
|
|
274
|
+
query: JSON.stringify(queryObj)
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
// Setup request with URL and Params
|
|
278
|
+
var requestAPI = request.get(url).query(params);
|
|
279
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
280
|
+
|
|
281
|
+
// Setup token in Authorization header
|
|
282
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
283
|
+
|
|
284
|
+
// Call GET ALL USER Api
|
|
285
|
+
requestAPI.end(function(err, response) {
|
|
286
|
+
if(err) {
|
|
287
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
288
|
+
dfd.reject(err);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
var responseObject = { entities: [] };
|
|
292
|
+
responseObject.count = response.body.hits.hits.length;
|
|
293
|
+
if(responseObject.count && (options.limit === responseObject.count)) {
|
|
294
|
+
var cursor = response.body.hits.hits[response.body.hits.hits.length - 1].sort;
|
|
295
|
+
responseObject.cursor = JSON.stringify(cursor);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
for(var index in response.body.hits.hits) {
|
|
299
|
+
var userEntity = response.body.hits.hits[index]._source;
|
|
300
|
+
var userObj = {
|
|
301
|
+
uuid: userEntity.dls_user_id,
|
|
302
|
+
name: userEntity.first_name + ' ' + userEntity.last_name,
|
|
303
|
+
email: userEntity.email || userEntity.ext_email,
|
|
304
|
+
username: userEntity.userid + '--ACCOUNT',
|
|
305
|
+
created: userEntity.created,
|
|
306
|
+
org: { id: self.orgId }
|
|
307
|
+
};
|
|
308
|
+
if(userEntity.roles) {
|
|
309
|
+
userObj.roles = userEntity.roles;
|
|
310
|
+
}
|
|
311
|
+
if(userEntity.provision_method) {
|
|
312
|
+
userObj.provision_method = userEntity.provision_method;
|
|
313
|
+
}
|
|
314
|
+
if(userEntity.first_name) {
|
|
315
|
+
userObj.first_name = userEntity.first_name;
|
|
316
|
+
}
|
|
317
|
+
if(userEntity.last_name) {
|
|
318
|
+
userObj.last_name = userEntity.last_name;
|
|
319
|
+
}
|
|
320
|
+
if(userEntity.ext_parent_id) {
|
|
321
|
+
userObj.ext_parent_id = userEntity.ext_parent_id;
|
|
322
|
+
}
|
|
323
|
+
if(userEntity.username) {
|
|
324
|
+
userObj.ext_username = userEntity.username;
|
|
325
|
+
}
|
|
326
|
+
if(userEntity.userid) {
|
|
327
|
+
userObj.ext_user_id = userEntity.userid;
|
|
328
|
+
}
|
|
329
|
+
if(userEntity.address) {
|
|
330
|
+
userObj.address = userEntity.address;
|
|
331
|
+
}
|
|
332
|
+
responseObject.entities.push(userObj);
|
|
333
|
+
}
|
|
334
|
+
dfd.resolve(responseObject);
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
return dfd.promise;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
//options = {
|
|
342
|
+
// userid: 'dlsUserId', //mandatory
|
|
343
|
+
// target_role: 'string', //mandatory
|
|
344
|
+
// ext_data: { email_template_id: string } //optional
|
|
345
|
+
//}
|
|
346
|
+
function updateUserRole(options) {
|
|
347
|
+
var self = this;
|
|
348
|
+
|
|
349
|
+
// Initializing promise
|
|
350
|
+
var dfd = q.defer();
|
|
351
|
+
// Validations
|
|
352
|
+
var error = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
353
|
+
if(error) { dfd.reject(error); }
|
|
354
|
+
else {
|
|
355
|
+
if(options && options.userid && options.target_role) {
|
|
356
|
+
// Passed all validations, Contruct API url
|
|
357
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
358
|
+
self.config.AUTH_API_URLS.updateUserRoleAPI;
|
|
359
|
+
url = helpers.api.constructAPIUrl(url, { orgId : self.orgId, userId: options.userid });
|
|
360
|
+
var bodyParams = { ext_data: options.ext_data, target_role: options.target_role };
|
|
361
|
+
// Setup request with URL and Params
|
|
362
|
+
var requestAPI = request.put(url)
|
|
363
|
+
.set('Content-Type', 'application/json')
|
|
364
|
+
.set('Accept', 'application/json')
|
|
365
|
+
.send(bodyParams);
|
|
366
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
367
|
+
// Setup token in Authorization header
|
|
368
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
369
|
+
|
|
370
|
+
requestAPI.end(function(err, response) {
|
|
371
|
+
if(err) {
|
|
372
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
373
|
+
dfd.reject(err);
|
|
374
|
+
}
|
|
375
|
+
else { dfd.resolve(response); }
|
|
376
|
+
});
|
|
377
|
+
} else {
|
|
378
|
+
var err = {};
|
|
379
|
+
err.message = err.description = 'Mandatory parameter options, userid or target_role, not found in request options.';
|
|
380
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
381
|
+
dfd.reject(err);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
return dfd.promise;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
//options = {
|
|
389
|
+
// userid: 'uuid or username', //optional.
|
|
390
|
+
// search: 'search string', //optional.
|
|
391
|
+
// details: true/false, //optional, includes products & assignments information of class.
|
|
392
|
+
// sortField: ['startdate', 'enddate', 'title'] //optional, By default is 'title’.
|
|
393
|
+
// sortOrder: ['desc', 'asc'] //optional, By default is 'desc’.
|
|
394
|
+
// enrollmentType: ['creator', 'teacher', 'student'] //optional, bydefault send all classes.
|
|
395
|
+
// teacherId: 'string' //optional, get classes of a particular teacher only.
|
|
396
|
+
// cursor: 'cursor' //optional, cursor to get next set of classes
|
|
397
|
+
// limit: integer //optional, Number of entities to fetch at once
|
|
398
|
+
// bundleDetails: true/false //optional
|
|
399
|
+
//}
|
|
400
|
+
function getUserClasses(options) {
|
|
401
|
+
var self = this;
|
|
402
|
+
// Initializing promise
|
|
403
|
+
var dfd = q.defer();
|
|
404
|
+
// Validations
|
|
405
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
406
|
+
if(err) { dfd.reject(err); }
|
|
407
|
+
else {
|
|
408
|
+
var userid = 'me';
|
|
409
|
+
if(options) {
|
|
410
|
+
if(options.userid) { userid = options.userid; }
|
|
411
|
+
}
|
|
412
|
+
// Passed all validations, Construct API url
|
|
413
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
414
|
+
self.config.AUTH_API_URLS.getUserClassesAPI;
|
|
415
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, userId: userid });
|
|
416
|
+
|
|
417
|
+
// Contruct parameters
|
|
418
|
+
var params = {};
|
|
419
|
+
if(options) {
|
|
420
|
+
if(options.search) { params.search = 'title:' + options.search; }
|
|
421
|
+
if(options.details) { params.details = options.details; }
|
|
422
|
+
if(options.enrollmentType) { params.enrollmentType = options.enrollmentType; }
|
|
423
|
+
if(options.sortField) { params.sortField = options.sortField; }
|
|
424
|
+
if(options.sortOrder) { params.sortOrder = options.sortOrder; }
|
|
425
|
+
if(options.cursor) { params.cursor = options.cursor; }
|
|
426
|
+
if(options.limit) { params.limit = options.limit; }
|
|
427
|
+
if(options.teacherId) { params.lookup = 'class.class.instructor.uuid:' + options.teacherId; }
|
|
428
|
+
if(options.bundleDetails) { params.bundleDetails = options.bundleDetails; }
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
// Setup request with URL and Params
|
|
432
|
+
var requestAPI = request.get(url).query(params);
|
|
433
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
434
|
+
|
|
435
|
+
// Setup token in Authorization header
|
|
436
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
437
|
+
|
|
438
|
+
// Call GET ALL USER Api
|
|
439
|
+
requestAPI.end(function(err, response) {
|
|
440
|
+
if(err) {
|
|
441
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
442
|
+
dfd.reject(err);
|
|
443
|
+
}
|
|
444
|
+
else { dfd.resolve(response.body); }
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
return dfd.promise;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* options = {
|
|
452
|
+
* classid: 'classid',
|
|
453
|
+
* search: 'string', // (optional) Search Query
|
|
454
|
+
* cursor: 'string', // (optional) Cursor string to fetch next set of Users
|
|
455
|
+
* limit: 'integer' // (optional) Number of users to fetch at a time.
|
|
456
|
+
* sortField: 'string' // (optional) Sort the result according to given field. By default is 'email’.
|
|
457
|
+
* sortOrder: 'string' // (optional) Sort the result according to given order. By default is 'desc’.
|
|
458
|
+
* }
|
|
459
|
+
*/
|
|
460
|
+
function getClassUsers(options) {
|
|
461
|
+
var self = this;
|
|
462
|
+
// Initializing promise
|
|
463
|
+
var dfd = q.defer();
|
|
464
|
+
// Validations
|
|
465
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
466
|
+
if(err) { dfd.reject(err); }
|
|
467
|
+
else {
|
|
468
|
+
if(options && options.classid) {
|
|
469
|
+
// Passed all validations, Construct API url
|
|
470
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
471
|
+
self.config.AUTH_API_URLS.getClassUsersAPI;
|
|
472
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
473
|
+
orgId: self.orgId, classId: options.classid
|
|
474
|
+
});
|
|
475
|
+
|
|
476
|
+
// Setup params
|
|
477
|
+
var params = {};
|
|
478
|
+
if(options.search) { params.search = options.search; }
|
|
479
|
+
if(options.cursor) { params.cursor = options.cursor; }
|
|
480
|
+
if(options.limit) { params.limit = options.limit; }
|
|
481
|
+
if(options.sortField) { params.sortField = options.sortField; }
|
|
482
|
+
if(options.sortOrder) { params.sortOrder = options.sortOrder; }
|
|
483
|
+
|
|
484
|
+
// Setup request with URL and Params
|
|
485
|
+
var requestAPI = request.get(url).query(params);
|
|
486
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
487
|
+
|
|
488
|
+
// Setup token in Authorization header
|
|
489
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
490
|
+
|
|
491
|
+
// Call GET ALL USER Api
|
|
492
|
+
requestAPI.end(function(err, response) {
|
|
493
|
+
if(err) {
|
|
494
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
495
|
+
dfd.reject(err);
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
response.body.entities = converter.convertEnrollmetsResponse({data: response.body.entities}) ;
|
|
499
|
+
dfd.resolve(response.body);
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
} else {
|
|
503
|
+
err = {};
|
|
504
|
+
err.message = err.description = 'Required parameter classid is not defined.';
|
|
505
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
506
|
+
dfd.reject(err);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
return dfd.promise;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
//options = {
|
|
513
|
+
// extension: 'csv',
|
|
514
|
+
// import_type: 'users'/'groups'/'user-group-enrollment',
|
|
515
|
+
// upFile: '' // path to csv file to be uploaded
|
|
516
|
+
//}
|
|
517
|
+
function pisImport(options) {
|
|
518
|
+
var self = this;
|
|
519
|
+
// Initializing promise
|
|
520
|
+
var dfd = q.defer();
|
|
521
|
+
// Validations
|
|
522
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
523
|
+
if(err) { dfd.reject(err); }
|
|
524
|
+
else {
|
|
525
|
+
// Passed all validations, Construct API url
|
|
526
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
527
|
+
self.config.AUTH_API_URLS.pisImportAPI;
|
|
528
|
+
url = helpers.api.constructAPIUrl(url, {"orgId" : self.orgId});
|
|
529
|
+
// Contruct parameters
|
|
530
|
+
var params = {};
|
|
531
|
+
var upfile;
|
|
532
|
+
if(options) {
|
|
533
|
+
if(options.extension) { params.extension = options.extension; }
|
|
534
|
+
if(options.import_type) { params.import_type = options.import_type; }
|
|
535
|
+
if(options.upfile) { upfile = options.upfile; }
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
// Setup request with URL and Params
|
|
539
|
+
var requestAPI = request.post(url).query(params)
|
|
540
|
+
.set('Content-Type', 'multipart/form-data')
|
|
541
|
+
.attach('upfile', upfile);
|
|
542
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
543
|
+
|
|
544
|
+
// Setup token in Authorization header
|
|
545
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
546
|
+
|
|
547
|
+
// Call PIS IMPORT Api
|
|
548
|
+
requestAPI.end(function(err, response) {
|
|
549
|
+
if(err) {
|
|
550
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
551
|
+
dfd.reject(err);
|
|
552
|
+
}
|
|
553
|
+
else { dfd.resolve(response.body); }
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
return dfd.promise;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
//options = {
|
|
560
|
+
// field: '' // apps / lti / sis / pis / product[ANY ONE]
|
|
561
|
+
//}
|
|
562
|
+
function getOrgSettings(options) {
|
|
563
|
+
var self = this;
|
|
564
|
+
// Initializing promise
|
|
565
|
+
var dfd = q.defer();
|
|
566
|
+
// Validations
|
|
567
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
568
|
+
if(err) { dfd.reject(err); }
|
|
569
|
+
else {
|
|
570
|
+
// Passed all validations, Construct API url
|
|
571
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
572
|
+
self.config.AUTH_API_URLS.getSettings;
|
|
573
|
+
url = helpers.api.constructAPIUrl(url, {orgId: self.orgId});
|
|
574
|
+
|
|
575
|
+
// Contruct parameters
|
|
576
|
+
var params = {};
|
|
577
|
+
if(options && options.field) {
|
|
578
|
+
url = self.config.DEFAULT_HOSTS.AUTH +
|
|
579
|
+
self.config.AUTH_API_URLS.getSettingsField;
|
|
580
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
581
|
+
orgId: self.orgId, field: options.field
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
// Setup request with URL and Params
|
|
586
|
+
var requestAPI = request.get(url).query(params);
|
|
587
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
588
|
+
|
|
589
|
+
// Setup token in Authorization header
|
|
590
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
591
|
+
|
|
592
|
+
// Call SIS IMPORT Api
|
|
593
|
+
requestAPI.end(function(err, response) {
|
|
594
|
+
if(err) {
|
|
595
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
596
|
+
dfd.reject(err);
|
|
597
|
+
}
|
|
598
|
+
else { dfd.resolve(response.body); }
|
|
599
|
+
});
|
|
600
|
+
}
|
|
601
|
+
return dfd.promise;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
//options = {
|
|
605
|
+
// body: {} // the top level settings field to be updated.
|
|
606
|
+
//}
|
|
607
|
+
function updateOrgSettings(options) {
|
|
608
|
+
var self = this;
|
|
609
|
+
// Initializing promise
|
|
610
|
+
var dfd = q.defer();
|
|
611
|
+
// Validations
|
|
612
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
613
|
+
if(err) { dfd.reject(err); }
|
|
614
|
+
else {
|
|
615
|
+
// Passed all validations, Construct API url
|
|
616
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
617
|
+
self.config.AUTH_API_URLS.getSettings;
|
|
618
|
+
url = helpers.api.constructAPIUrl(url, {orgId: self.orgId});
|
|
619
|
+
// Setup request with URL and Params
|
|
620
|
+
var requestAPI = request.put(url);
|
|
621
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
622
|
+
|
|
623
|
+
if(options.body) {
|
|
624
|
+
if(options.body.sis && (! options.body.sis.productid)) {
|
|
625
|
+
options.body.sis.productid = [];
|
|
626
|
+
}
|
|
627
|
+
requestAPI.send(options.body);
|
|
628
|
+
}
|
|
629
|
+
// Setup token in Authorization header
|
|
630
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
631
|
+
|
|
632
|
+
// Call SIS IMPORT Api
|
|
633
|
+
requestAPI.end(function(err, response) {
|
|
634
|
+
if(err) {
|
|
635
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
636
|
+
dfd.reject(err);
|
|
637
|
+
}
|
|
638
|
+
else { dfd.resolve(response.body); }
|
|
639
|
+
});
|
|
640
|
+
}
|
|
641
|
+
return dfd.promise;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
//options = {
|
|
645
|
+
// classid: "string"
|
|
646
|
+
//}
|
|
647
|
+
function generateClassCode(options) {
|
|
648
|
+
var self = this, err;
|
|
649
|
+
// Initializing promise
|
|
650
|
+
var dfd = q.defer();
|
|
651
|
+
if(options && options.classid) {
|
|
652
|
+
// Validations
|
|
653
|
+
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
654
|
+
if(err) { dfd.reject(err); }
|
|
655
|
+
else {
|
|
656
|
+
// Passed all validations, Construct API url
|
|
657
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
658
|
+
self.config.AUTH_API_URLS.generateClassCode;
|
|
659
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
660
|
+
orgId: self.orgId, classId: options.classid
|
|
661
|
+
});
|
|
662
|
+
// Setup request with URL and Params
|
|
663
|
+
var requestAPI = request.post(url);
|
|
664
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
665
|
+
|
|
666
|
+
// Setup token in Authorization header
|
|
667
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
668
|
+
|
|
669
|
+
// Call Update class settings Api
|
|
670
|
+
requestAPI.end(function(err, response) {
|
|
671
|
+
if(err) {
|
|
672
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
673
|
+
dfd.reject(err);
|
|
674
|
+
}
|
|
675
|
+
else { dfd.resolve(response.body); }
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
} else {
|
|
679
|
+
err = {};
|
|
680
|
+
err.message = err.description = 'classid not found in request options.';
|
|
681
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
682
|
+
dfd.reject(err);
|
|
683
|
+
}
|
|
684
|
+
return dfd.promise;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
* {
|
|
689
|
+
accountId: 'string' //mandatory
|
|
690
|
+
extUserId: 'string', //mandatory
|
|
691
|
+
jobType: 'string' //optional queryParam, Use this param to get All Jobs of a particular jobType.
|
|
692
|
+
}
|
|
693
|
+
*/
|
|
694
|
+
function getAllJobs(options) {
|
|
695
|
+
var self = this;
|
|
696
|
+
// Initializing promise
|
|
697
|
+
var dfd = q.defer();
|
|
698
|
+
|
|
699
|
+
if(options && options.accountId && options.extUserId) {
|
|
700
|
+
// Passed all validations, Contruct API url
|
|
701
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getAllJobs;
|
|
702
|
+
url = helpers.api.constructAPIUrl(url, { accountId : options.accountId, extUserId: options.extUserId });
|
|
703
|
+
|
|
704
|
+
var params = {};
|
|
705
|
+
if(options.jobType) { params.jobType = options.jobType; }
|
|
706
|
+
|
|
707
|
+
// Setup request with URL and Params
|
|
708
|
+
var requestAPI = request.get(url).query(params);
|
|
709
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
710
|
+
|
|
711
|
+
requestAPI.end(function(error, response) {
|
|
712
|
+
if(error) {
|
|
713
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
714
|
+
dfd.reject(error);
|
|
715
|
+
}
|
|
716
|
+
else { dfd.resolve(response.body); }
|
|
717
|
+
});
|
|
718
|
+
} else {
|
|
719
|
+
var err = {};
|
|
720
|
+
err.message = err.description = 'accountId or extUserId not found in request options.';
|
|
721
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
722
|
+
dfd.reject(err);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
return dfd.promise;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* options = {
|
|
730
|
+
accountId: 'string', //mandatory
|
|
731
|
+
extUserId: 'string', //mandatory
|
|
732
|
+
jobId: 'string', //mandatory
|
|
733
|
+
jobType: 'string' //mandatory
|
|
734
|
+
}
|
|
735
|
+
*/
|
|
736
|
+
function getJob(options) {
|
|
737
|
+
var self = this;
|
|
738
|
+
// Initializing promise
|
|
739
|
+
var dfd = q.defer();
|
|
740
|
+
|
|
741
|
+
if(options && options.accountId && options.extUserId && options.jobId && options.jobType) {
|
|
742
|
+
// Passed all validations, Contruct API url
|
|
743
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getJob;
|
|
744
|
+
url = helpers.api.constructAPIUrl(url, { accountId : options.accountId, extUserId: options.extUserId,
|
|
745
|
+
jobId: options.jobId });
|
|
746
|
+
var params = { jobType: options.jobType };
|
|
747
|
+
|
|
748
|
+
// Setup request with URL and Params
|
|
749
|
+
var requestAPI = request.get(url).query(params);
|
|
750
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
751
|
+
|
|
752
|
+
requestAPI.end(function(error, response) {
|
|
753
|
+
if(error) {
|
|
754
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
755
|
+
dfd.reject(error);
|
|
756
|
+
}
|
|
757
|
+
else { dfd.resolve(response.body); }
|
|
758
|
+
});
|
|
759
|
+
} else {
|
|
760
|
+
var err = {};
|
|
761
|
+
err.message = err.description = 'accountId or extUserId or jobType or jobId or not found in request options.';
|
|
762
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
763
|
+
dfd.reject(err);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
return dfd.promise;
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
//options = {
|
|
770
|
+
// search: 'search string', //optional.
|
|
771
|
+
// sortField: ['startdate', 'enddate', 'title', 'created'] //optional, By default is 'created’.
|
|
772
|
+
// sortOrder: ['desc', 'asc'] //optional, By default is 'desc’.
|
|
773
|
+
// cursor: 'cursor' //optional, cursor to get next set of groups.
|
|
774
|
+
// limit: integer, // (optional) limit number of Classes in response.
|
|
775
|
+
// lookup: 'string', // (optional) Search query (',' separated key value pairs),
|
|
776
|
+
// Eg. key1:val1,key2:val2
|
|
777
|
+
//}
|
|
778
|
+
function getAllClasses(options) {
|
|
779
|
+
var self = this;
|
|
780
|
+
|
|
781
|
+
//Initializing promise
|
|
782
|
+
var dfd = q.defer();
|
|
783
|
+
|
|
784
|
+
//Validations
|
|
785
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
786
|
+
if(err) {
|
|
787
|
+
dfd.reject(err);
|
|
788
|
+
} else {
|
|
789
|
+
var queryStr = 'orgid:"' + self.orgId + '"';
|
|
790
|
+
|
|
791
|
+
if(options.search) {
|
|
792
|
+
queryStr = queryStr + ' AND (title:"' + options.search + '" OR class.instructor.first_name:"' + options.search +
|
|
793
|
+
'" OR class.instructor.last_name:"' + options.search + '" OR description:"' + options.search + '")';
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
var sortField = options.sortField || '';
|
|
797
|
+
sortField = sortField.replace(/ext_/ig, '').split(',').shift().trim() || 'created';
|
|
798
|
+
if(sortField === 'enddate' || sortField === 'startdate') {
|
|
799
|
+
sortField = 'class.' + sortField;
|
|
800
|
+
}
|
|
801
|
+
if(sortField === 'title') {
|
|
802
|
+
sortField = sortField + '.keyword';
|
|
803
|
+
}
|
|
804
|
+
var sortOrder = options.sortOrder || 'desc';
|
|
805
|
+
var sortObj = {}, sortArr = [];
|
|
806
|
+
sortObj[sortField] = sortOrder;
|
|
807
|
+
sortArr.push(sortObj);
|
|
808
|
+
|
|
809
|
+
var queryObj = {
|
|
810
|
+
query: { query_string: { query: queryStr } },
|
|
811
|
+
sort: sortArr
|
|
812
|
+
};
|
|
813
|
+
|
|
814
|
+
if(options.cursor) { queryObj.search_after = JSON.parse(options.cursor); }
|
|
815
|
+
if(options.limit) { queryObj.size = options.limit; }
|
|
816
|
+
else { options.limit = 10; } // by default ES returns only 10 elements at max.
|
|
817
|
+
|
|
818
|
+
//Passed all validations, Construct API url
|
|
819
|
+
var url = self.config.DEFAULT_HOSTS.INTEGRATION +
|
|
820
|
+
self.config.INTEGRATIONS_API_URLS.queryDataFromSearch;
|
|
821
|
+
url = helpers.api.constructAPIUrl(url, { index: 'classes' });
|
|
822
|
+
|
|
823
|
+
// Contruct parameters
|
|
824
|
+
var params = {
|
|
825
|
+
query: JSON.stringify(queryObj)
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
//Setup request with URL and Params
|
|
829
|
+
var requestAPI = request.get(url).query(params);
|
|
830
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
831
|
+
|
|
832
|
+
//Setup token in Authorization header
|
|
833
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
834
|
+
|
|
835
|
+
//Call GET ALL USER Api
|
|
836
|
+
requestAPI.end(function(err, response) {
|
|
837
|
+
if(err) {
|
|
838
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
839
|
+
dfd.reject(err);
|
|
840
|
+
} else {
|
|
841
|
+
var responseObject = { entities: [] };
|
|
842
|
+
responseObject.count = response.body.hits.hits.length;
|
|
843
|
+
if(responseObject.count && (options.limit === responseObject.count)) {
|
|
844
|
+
var cursor = response.body.hits.hits[response.body.hits.hits.length - 1].sort;
|
|
845
|
+
responseObject.cursor = JSON.stringify(cursor);
|
|
846
|
+
}
|
|
847
|
+
for(var index in response.body.hits.hits) {
|
|
848
|
+
var classEntity = response.body.hits.hits[index]._source;
|
|
849
|
+
var classObj = {
|
|
850
|
+
uuid: classEntity.classid,
|
|
851
|
+
created: classEntity.created,
|
|
852
|
+
modified: classEntity.modified,
|
|
853
|
+
path: classEntity.path,
|
|
854
|
+
category: classEntity.category,
|
|
855
|
+
class: {
|
|
856
|
+
enddate: classEntity.class.enddate,
|
|
857
|
+
instructor: {
|
|
858
|
+
name: classEntity.class.instructor.first_name + ' ' + classEntity.class.instructor.last_name,
|
|
859
|
+
last_name: classEntity.class.instructor.last_name,
|
|
860
|
+
first_name: classEntity.class.instructor.first_name,
|
|
861
|
+
uuid: classEntity.class.instructor.dls_user_id,
|
|
862
|
+
email: classEntity.class.instructor.email,
|
|
863
|
+
username: classEntity.class.instructor.userid + '--ACCOUNT'
|
|
864
|
+
},
|
|
865
|
+
startdate: classEntity.class.startdate
|
|
866
|
+
},
|
|
867
|
+
'class.settings.active': classEntity['class.settings.active'],
|
|
868
|
+
class_code: classEntity.class_code,
|
|
869
|
+
class_ownership: classEntity.class_ownership || { owner_status: 'ENROLLED', model: 'STRICT' },
|
|
870
|
+
description: classEntity.description,
|
|
871
|
+
provision_method: classEntity.class.provision_method,
|
|
872
|
+
title: classEntity.title
|
|
873
|
+
};
|
|
874
|
+
responseObject.entities.push(classObj);
|
|
875
|
+
}
|
|
876
|
+
dfd.resolve(responseObject);
|
|
877
|
+
}
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
return dfd.promise;
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
|
|
884
|
+
//options = {
|
|
885
|
+
// classId: 'class uuid'
|
|
886
|
+
//}
|
|
887
|
+
function getParticularClass(options) {
|
|
888
|
+
var self = this;
|
|
889
|
+
|
|
890
|
+
//Initializing promise
|
|
891
|
+
var dfd = q.defer();
|
|
892
|
+
|
|
893
|
+
//Validations
|
|
894
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
895
|
+
if(err) {
|
|
896
|
+
dfd.reject(err);
|
|
897
|
+
} else {
|
|
898
|
+
if(options && options.classId) {
|
|
899
|
+
//Passed all validations, Contruct API url
|
|
900
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getParticularClassAPI;
|
|
901
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classId } );
|
|
902
|
+
|
|
903
|
+
var requestAPI = request.get(url);
|
|
904
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
905
|
+
|
|
906
|
+
//Setup token in Authorization header
|
|
907
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
908
|
+
|
|
909
|
+
requestAPI.end(function(err, response) {
|
|
910
|
+
if(err) {
|
|
911
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
912
|
+
dfd.reject(err);
|
|
913
|
+
} else {
|
|
914
|
+
dfd.resolve(response.body);
|
|
915
|
+
}
|
|
916
|
+
});
|
|
917
|
+
} else {
|
|
918
|
+
err = {};
|
|
919
|
+
err.message = err.description = 'classId not found in request options.';
|
|
920
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
921
|
+
dfd.reject(err);
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
return dfd.promise;
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
//options = {
|
|
928
|
+
// ext_classid: 'ext classid' //mandatory
|
|
929
|
+
//}
|
|
930
|
+
function getParticularShadowClass(options) {
|
|
931
|
+
var self = this;
|
|
932
|
+
|
|
933
|
+
//Initializing promise
|
|
934
|
+
var dfd = q.defer();
|
|
935
|
+
|
|
936
|
+
// Validations
|
|
937
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
938
|
+
if(err) {
|
|
939
|
+
dfd.reject(err);
|
|
940
|
+
}
|
|
941
|
+
else {
|
|
942
|
+
if(options && options.ext_classid) {
|
|
943
|
+
//Passed all validations, Contruct API url
|
|
944
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.getParticularShadowClassAPI;
|
|
945
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, extClassId: options.ext_classid } );
|
|
946
|
+
|
|
947
|
+
var requestAPI = request.get(url);
|
|
948
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
949
|
+
|
|
950
|
+
//Setup token in Authorization header
|
|
951
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
952
|
+
|
|
953
|
+
requestAPI.end(function(err, response) {
|
|
954
|
+
if(err) {
|
|
955
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
956
|
+
dfd.reject(err);
|
|
957
|
+
}
|
|
958
|
+
else {
|
|
959
|
+
dfd.resolve(response.body);
|
|
960
|
+
}
|
|
961
|
+
});
|
|
962
|
+
} else {
|
|
963
|
+
err = {};
|
|
964
|
+
err.message = err.description = 'ext_classid not found in request options.';
|
|
965
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
966
|
+
dfd.reject(err);
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
return dfd.promise;
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
//options = {
|
|
973
|
+
// classId: 'class uuid',
|
|
974
|
+
// productcode: 'productcode'
|
|
975
|
+
//}
|
|
976
|
+
function createClassProductAssociation(options) {
|
|
977
|
+
var self = this;
|
|
978
|
+
// Initializing promise
|
|
979
|
+
var dfd = q.defer();
|
|
980
|
+
// Validations
|
|
981
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
982
|
+
if(err) { dfd.reject(err); }
|
|
983
|
+
else {
|
|
984
|
+
if(options && options.classId && options.productcode) {
|
|
985
|
+
// Passed all validations, Contruct API url
|
|
986
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
987
|
+
self.config.AUTH_API_URLS.classProductAssociation;
|
|
988
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
989
|
+
orgId: self.orgId, classId: options.classId, productcode: options.productcode
|
|
990
|
+
});
|
|
991
|
+
|
|
992
|
+
// Setup request with URL and Params
|
|
993
|
+
var requestAPI = request.post(url)
|
|
994
|
+
.set('Content-Type', 'application/json')
|
|
995
|
+
.set('Accept', 'application/json');
|
|
996
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
997
|
+
|
|
998
|
+
// Setup token in Authorization header
|
|
999
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1000
|
+
|
|
1001
|
+
requestAPI.end(function(err, response) {
|
|
1002
|
+
if(err) {
|
|
1003
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1004
|
+
dfd.reject(err);
|
|
1005
|
+
}
|
|
1006
|
+
else { dfd.resolve(response.body); }
|
|
1007
|
+
});
|
|
1008
|
+
} else {
|
|
1009
|
+
err = {};
|
|
1010
|
+
err.message = err.description = 'classId or productcode not found in request options.';
|
|
1011
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1012
|
+
dfd.reject(err);
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
return dfd.promise;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
//options = {
|
|
1019
|
+
// classId: 'class uuid',
|
|
1020
|
+
// productcode: 'product code'
|
|
1021
|
+
//}
|
|
1022
|
+
function removeClassProductAssociation(options) {
|
|
1023
|
+
var self = this;
|
|
1024
|
+
// Initializing promise
|
|
1025
|
+
var dfd = q.defer();
|
|
1026
|
+
// Validations
|
|
1027
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1028
|
+
if(err) { dfd.reject(err); }
|
|
1029
|
+
else {
|
|
1030
|
+
if(options && options.classId && options.productcode) {
|
|
1031
|
+
// Passed all validations, Contruct API url
|
|
1032
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1033
|
+
self.config.AUTH_API_URLS.classProductAssociation;
|
|
1034
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1035
|
+
orgId: self.orgId, classId: options.classId, productcode: options.productcode
|
|
1036
|
+
});
|
|
1037
|
+
|
|
1038
|
+
// Contruct parameters
|
|
1039
|
+
var params = {};
|
|
1040
|
+
|
|
1041
|
+
// Setup request with URL and Params
|
|
1042
|
+
var requestAPI = request.delete(url).query(params);
|
|
1043
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1044
|
+
|
|
1045
|
+
// Setup token in Authorization header
|
|
1046
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1047
|
+
|
|
1048
|
+
requestAPI.end(function(err, response) {
|
|
1049
|
+
if(err) {
|
|
1050
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1051
|
+
dfd.reject(err);
|
|
1052
|
+
}
|
|
1053
|
+
else { dfd.resolve(response.body); }
|
|
1054
|
+
});
|
|
1055
|
+
} else {
|
|
1056
|
+
err = {};
|
|
1057
|
+
err.message = err.description = 'classId or productcode not found in request options.';
|
|
1058
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1059
|
+
dfd.reject(err);
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
return dfd.promise;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
/*options = {
|
|
1066
|
+
classid: 'string'
|
|
1067
|
+
}*/
|
|
1068
|
+
function getClassAppdata(options) {
|
|
1069
|
+
var self = this;
|
|
1070
|
+
// Initializing promise
|
|
1071
|
+
var dfd = q.defer();
|
|
1072
|
+
// Validations
|
|
1073
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1074
|
+
if(err) { dfd.reject(err); }
|
|
1075
|
+
else {
|
|
1076
|
+
if(options && options.classid) {
|
|
1077
|
+
// Passed all validations, Contruct API url
|
|
1078
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1079
|
+
self.config.AUTH_API_URLS.ClassAppdata;
|
|
1080
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1081
|
+
orgId: self.orgId, classid: options.classid
|
|
1082
|
+
});
|
|
1083
|
+
//Setup request with URL
|
|
1084
|
+
var requestAPI = request.get(url);
|
|
1085
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1086
|
+
|
|
1087
|
+
//Setup token in Authorization header
|
|
1088
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1089
|
+
|
|
1090
|
+
//Call Class Appdata Api
|
|
1091
|
+
requestAPI.end(function(err, response) {
|
|
1092
|
+
if(err) {
|
|
1093
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1094
|
+
dfd.reject(err);
|
|
1095
|
+
} else {
|
|
1096
|
+
dfd.resolve(response.body);
|
|
1097
|
+
}
|
|
1098
|
+
});
|
|
1099
|
+
} else {
|
|
1100
|
+
err = {};
|
|
1101
|
+
err.message = err.description = 'classid not found in request options.';
|
|
1102
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1103
|
+
dfd.reject(err);
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
1106
|
+
return dfd.promise;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
/*options = {
|
|
1110
|
+
classid: 'string',
|
|
1111
|
+
appdata: {}
|
|
1112
|
+
}*/
|
|
1113
|
+
|
|
1114
|
+
function putClassAppdata(options) {
|
|
1115
|
+
var self = this;
|
|
1116
|
+
// Initializing promise
|
|
1117
|
+
var dfd = q.defer();
|
|
1118
|
+
// Validations
|
|
1119
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1120
|
+
if(err) { dfd.reject(err); }
|
|
1121
|
+
else {
|
|
1122
|
+
if(options && options.classid && options.appdata) {
|
|
1123
|
+
// Passed all validations, Contruct API url
|
|
1124
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1125
|
+
self.config.AUTH_API_URLS.ClassAppdata;
|
|
1126
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1127
|
+
orgId: self.orgId, classid: options.classid
|
|
1128
|
+
});
|
|
1129
|
+
|
|
1130
|
+
// Setup request with URL and Params
|
|
1131
|
+
var requestAPI = request.put(url)
|
|
1132
|
+
.set('Content-Type', 'application/json')
|
|
1133
|
+
.set('Accept', 'application/json')
|
|
1134
|
+
.send(options.appdata);
|
|
1135
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1136
|
+
|
|
1137
|
+
// Setup token in Authorization header
|
|
1138
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1139
|
+
|
|
1140
|
+
requestAPI.end(function(err, response) {
|
|
1141
|
+
if(err) {
|
|
1142
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1143
|
+
dfd.reject(err);
|
|
1144
|
+
}
|
|
1145
|
+
else { dfd.resolve(response.body); }
|
|
1146
|
+
});
|
|
1147
|
+
} else {
|
|
1148
|
+
err = {};
|
|
1149
|
+
err.message = err.description = 'classid or appdata not found in request options.';
|
|
1150
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1151
|
+
dfd.reject(err);
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1154
|
+
return dfd.promise;
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
/*options = {
|
|
1158
|
+
classid: 'string'
|
|
1159
|
+
}*/
|
|
1160
|
+
|
|
1161
|
+
function deleteClassAppdata(options) {
|
|
1162
|
+
var self = this;
|
|
1163
|
+
// Initializing promise
|
|
1164
|
+
var dfd = q.defer();
|
|
1165
|
+
// Validations
|
|
1166
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1167
|
+
if(err) { dfd.reject(err); }
|
|
1168
|
+
else {
|
|
1169
|
+
if(options && options.classid) {
|
|
1170
|
+
// Passed all validations, Contruct API url
|
|
1171
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1172
|
+
self.config.AUTH_API_URLS.ClassAppdata;
|
|
1173
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1174
|
+
orgId: self.orgId, classid: options.classid
|
|
1175
|
+
});
|
|
1176
|
+
|
|
1177
|
+
// Setup request with URL and Params
|
|
1178
|
+
var requestAPI = request.delete(url);
|
|
1179
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1180
|
+
|
|
1181
|
+
// Setup token in Authorization header
|
|
1182
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1183
|
+
|
|
1184
|
+
requestAPI.end(function(err, response) {
|
|
1185
|
+
if(err) {
|
|
1186
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1187
|
+
dfd.reject(err);
|
|
1188
|
+
}
|
|
1189
|
+
else { dfd.resolve(response.body); }
|
|
1190
|
+
});
|
|
1191
|
+
} else {
|
|
1192
|
+
err = {};
|
|
1193
|
+
err.message = err.description = 'classid not found in request options.';
|
|
1194
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1195
|
+
dfd.reject(err);
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
return dfd.promise;
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
//options = {
|
|
1202
|
+
// classid: '', //Class Id
|
|
1203
|
+
// userid: '', //User Id
|
|
1204
|
+
//};
|
|
1205
|
+
function enrollUsertoClass(options) {
|
|
1206
|
+
var self = this;
|
|
1207
|
+
var err = {};
|
|
1208
|
+
//Initializing promise
|
|
1209
|
+
var dfd = q.defer();
|
|
1210
|
+
if(options && options.classid && options.userid) {
|
|
1211
|
+
//Validations
|
|
1212
|
+
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1213
|
+
if(err) {
|
|
1214
|
+
dfd.reject(err);
|
|
1215
|
+
} else {
|
|
1216
|
+
//Passed all validations, Construct API url
|
|
1217
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1218
|
+
self.config.AUTH_API_URLS.enrollUsertoClass;
|
|
1219
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1220
|
+
orgId: self.orgId,
|
|
1221
|
+
classId: options.classid,
|
|
1222
|
+
userId: options.userid
|
|
1223
|
+
});
|
|
1224
|
+
|
|
1225
|
+
//Contruct parameters
|
|
1226
|
+
var params = {};
|
|
1227
|
+
|
|
1228
|
+
//Setup request with URL and Params
|
|
1229
|
+
var requestAPI = request.post(url)
|
|
1230
|
+
.set('Content-Type', 'application/json')
|
|
1231
|
+
.set('Accept', 'application/json')
|
|
1232
|
+
.query(params);
|
|
1233
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1234
|
+
|
|
1235
|
+
//Setup token in Authorization header
|
|
1236
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1237
|
+
|
|
1238
|
+
//Call GET Product by it's code Api
|
|
1239
|
+
requestAPI.end(function(err, response) {
|
|
1240
|
+
if(err) {
|
|
1241
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1242
|
+
dfd.reject(err);
|
|
1243
|
+
} else {
|
|
1244
|
+
dfd.resolve(response.body);
|
|
1245
|
+
}
|
|
1246
|
+
});
|
|
1247
|
+
}
|
|
1248
|
+
} else {
|
|
1249
|
+
err.message = err.description = 'Mandatory parameter classid or userid not found in request options';
|
|
1250
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1251
|
+
dfd.reject(err);
|
|
1252
|
+
}
|
|
1253
|
+
return dfd.promise;
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
//options = {
|
|
1257
|
+
// classid: '', //Class Id
|
|
1258
|
+
//};
|
|
1259
|
+
function enrollSelftoClass(options) {
|
|
1260
|
+
var self = this;
|
|
1261
|
+
var err = {};
|
|
1262
|
+
//Initializing promise
|
|
1263
|
+
var dfd = q.defer();
|
|
1264
|
+
if(options && options.classid) {
|
|
1265
|
+
//Validations
|
|
1266
|
+
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1267
|
+
if(err) {
|
|
1268
|
+
dfd.reject(err);
|
|
1269
|
+
} else {
|
|
1270
|
+
//Passed all validations, Construct API url
|
|
1271
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1272
|
+
self.config.AUTH_API_URLS.enrollSelftoClass;
|
|
1273
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1274
|
+
orgId: self.orgId,
|
|
1275
|
+
classId: options.classid
|
|
1276
|
+
});
|
|
1277
|
+
|
|
1278
|
+
//Setup request with URL and Params
|
|
1279
|
+
var requestAPI = request.post(url);
|
|
1280
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1281
|
+
|
|
1282
|
+
//Setup token in Authorization header
|
|
1283
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1284
|
+
|
|
1285
|
+
//Call GET Product by it's code Api
|
|
1286
|
+
requestAPI.end(function(err, response) {
|
|
1287
|
+
if(err) {
|
|
1288
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1289
|
+
dfd.reject(err);
|
|
1290
|
+
} else {
|
|
1291
|
+
dfd.resolve(response.body);
|
|
1292
|
+
}
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
else {
|
|
1297
|
+
err.message = err.description = 'Mandatory parameter classid not found in request options';
|
|
1298
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1299
|
+
dfd.reject(err);
|
|
1300
|
+
}
|
|
1301
|
+
return dfd.promise;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
//options = {
|
|
1305
|
+
// classid: '', //Class Id
|
|
1306
|
+
// users: ['dls-userid1', 'dls-userid-2'] //Users Id
|
|
1307
|
+
//};
|
|
1308
|
+
function enrollMultiUserstoClass(options) {
|
|
1309
|
+
var self = this;
|
|
1310
|
+
var err = {};
|
|
1311
|
+
//Initializing promise
|
|
1312
|
+
var dfd = q.defer();
|
|
1313
|
+
if(options && options.classid && options.users) {
|
|
1314
|
+
//Validations
|
|
1315
|
+
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1316
|
+
if(err) {
|
|
1317
|
+
dfd.reject(err);
|
|
1318
|
+
} else {
|
|
1319
|
+
//Passed all validations, Construct API url
|
|
1320
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1321
|
+
self.config.AUTH_API_URLS.enrollMultiUserstoClass;
|
|
1322
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1323
|
+
orgId: self.orgId,
|
|
1324
|
+
classId: options.classid
|
|
1325
|
+
});
|
|
1326
|
+
|
|
1327
|
+
//Contruct parameters
|
|
1328
|
+
var params = {
|
|
1329
|
+
users: options.users
|
|
1330
|
+
};
|
|
1331
|
+
//Setup request with URL and Params
|
|
1332
|
+
var requestAPI = request.post(url)
|
|
1333
|
+
.set('Content-Type', 'application/json')
|
|
1334
|
+
.set('Accept', 'application/json')
|
|
1335
|
+
.send(params);
|
|
1336
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1337
|
+
|
|
1338
|
+
//Setup token in Authorization header
|
|
1339
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1340
|
+
|
|
1341
|
+
//Call GET Product by it's code Api
|
|
1342
|
+
requestAPI.end(function(err, response) {
|
|
1343
|
+
if(err) {
|
|
1344
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1345
|
+
dfd.reject(err);
|
|
1346
|
+
} else {
|
|
1347
|
+
dfd.resolve(response.body);
|
|
1348
|
+
}
|
|
1349
|
+
});
|
|
1350
|
+
}
|
|
1351
|
+
} else {
|
|
1352
|
+
err.message = err.description = 'Mandatory parameter classid or users ' +
|
|
1353
|
+
'array not found in request options';
|
|
1354
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1355
|
+
dfd.reject(err);
|
|
1356
|
+
}
|
|
1357
|
+
return dfd.promise;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
//options = {
|
|
1361
|
+
// classid: '', //Class Id
|
|
1362
|
+
// users: ['dls-userid1', 'dls-userid-2'] //Users Id
|
|
1363
|
+
//};
|
|
1364
|
+
function unEnrollMultiUserstoClass(options) {
|
|
1365
|
+
var self = this;
|
|
1366
|
+
var err = {};
|
|
1367
|
+
//Initializing promise
|
|
1368
|
+
var dfd = q.defer();
|
|
1369
|
+
if(options && options.classid && options.users) {
|
|
1370
|
+
//Validations
|
|
1371
|
+
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1372
|
+
if(err) {
|
|
1373
|
+
dfd.reject(err);
|
|
1374
|
+
} else {
|
|
1375
|
+
//Passed all validations, Construct API url
|
|
1376
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1377
|
+
self.config.AUTH_API_URLS.enrollMultiUserstoClass;
|
|
1378
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1379
|
+
orgId: self.orgId,
|
|
1380
|
+
classId: options.classid
|
|
1381
|
+
});
|
|
1382
|
+
|
|
1383
|
+
//Contruct parameters
|
|
1384
|
+
var params = {
|
|
1385
|
+
users: options.users
|
|
1386
|
+
};
|
|
1387
|
+
//Setup request with URL and Params
|
|
1388
|
+
var requestAPI = request.delete(url)
|
|
1389
|
+
.set('Content-Type', 'application/json')
|
|
1390
|
+
.set('Accept', 'application/json')
|
|
1391
|
+
.send(params);
|
|
1392
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1393
|
+
|
|
1394
|
+
//Setup token in Authorization header
|
|
1395
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1396
|
+
|
|
1397
|
+
//Call GET Product by it's code Api
|
|
1398
|
+
requestAPI.end(function(err, response) {
|
|
1399
|
+
if(err) {
|
|
1400
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1401
|
+
dfd.reject(err);
|
|
1402
|
+
} else {
|
|
1403
|
+
dfd.resolve(response.body);
|
|
1404
|
+
}
|
|
1405
|
+
});
|
|
1406
|
+
}
|
|
1407
|
+
} else {
|
|
1408
|
+
err.message = err.description = 'Mandatory parameter classid or users ' +
|
|
1409
|
+
'array not found in request options';
|
|
1410
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1411
|
+
dfd.reject(err);
|
|
1412
|
+
}
|
|
1413
|
+
return dfd.promise;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
//options = {
|
|
1417
|
+
// classid: '', //Class Id
|
|
1418
|
+
// userid: '', //User Id
|
|
1419
|
+
//};
|
|
1420
|
+
function unEnrollUsertoClass(options) {
|
|
1421
|
+
var self = this;
|
|
1422
|
+
var err = {};
|
|
1423
|
+
//Initializing promise
|
|
1424
|
+
var dfd = q.defer();
|
|
1425
|
+
if(options && options.classid && options.userid) {
|
|
1426
|
+
//Validations
|
|
1427
|
+
err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1428
|
+
if(err) {
|
|
1429
|
+
dfd.reject(err);
|
|
1430
|
+
} else {
|
|
1431
|
+
//Passed all validations, Construct API url
|
|
1432
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
1433
|
+
self.config.AUTH_API_URLS.enrollUsertoClass;
|
|
1434
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1435
|
+
orgId: self.orgId,
|
|
1436
|
+
classId: options.classid,
|
|
1437
|
+
userId: options.userid
|
|
1438
|
+
});
|
|
1439
|
+
|
|
1440
|
+
//Contruct parameters
|
|
1441
|
+
var params = {};
|
|
1442
|
+
|
|
1443
|
+
//Setup request with URL and Params
|
|
1444
|
+
var requestAPI = request.delete(url).query(params);
|
|
1445
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1446
|
+
|
|
1447
|
+
//Setup token in Authorization header
|
|
1448
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1449
|
+
|
|
1450
|
+
//Call GET Product by it's code Api
|
|
1451
|
+
requestAPI.end(function(err, response) {
|
|
1452
|
+
if(err) {
|
|
1453
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1454
|
+
dfd.reject(err);
|
|
1455
|
+
} else {
|
|
1456
|
+
dfd.resolve(response.body);
|
|
1457
|
+
}
|
|
1458
|
+
});
|
|
1459
|
+
}
|
|
1460
|
+
} else {
|
|
1461
|
+
err.message = err.description = 'Mandatory parameter classid or userid not found in request options';
|
|
1462
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1463
|
+
dfd.reject(err);
|
|
1464
|
+
}
|
|
1465
|
+
return dfd.promise;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
//options = ['parameter1', 'parameter2']
|
|
1469
|
+
function encodeURLParameter(options) {
|
|
1470
|
+
var response = {};
|
|
1471
|
+
for(var param in options) {
|
|
1472
|
+
response[options[param]] = encodeURIComponent(options[param]);
|
|
1473
|
+
}
|
|
1474
|
+
return response;
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
/**
|
|
1478
|
+
* options = {
|
|
1479
|
+
* title: 'class title',
|
|
1480
|
+
* startdate: 'Epoch(Unix) timestamp in milliseconds',
|
|
1481
|
+
* enddate: 'Epoch(Unix) timestamp in milliseconds',
|
|
1482
|
+
* description: '' // Optional field
|
|
1483
|
+
* class_ownership: 'STRICT' / 'NO_OWNER' // Default - STRICT, Optional field
|
|
1484
|
+
* }
|
|
1485
|
+
*/
|
|
1486
|
+
function createClass(options) {
|
|
1487
|
+
var self = this;
|
|
1488
|
+
|
|
1489
|
+
//Initializing promise
|
|
1490
|
+
var dfd = q.defer();
|
|
1491
|
+
|
|
1492
|
+
//Validations
|
|
1493
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1494
|
+
if(err) {
|
|
1495
|
+
dfd.reject(err);
|
|
1496
|
+
} else {
|
|
1497
|
+
if(options && options.title && options.startdate && options.enddate) {
|
|
1498
|
+
//Passed all validations, Contruct API url
|
|
1499
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.createClass;
|
|
1500
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId });
|
|
1501
|
+
|
|
1502
|
+
//Contruct parameters
|
|
1503
|
+
var params = {
|
|
1504
|
+
title: options.title,
|
|
1505
|
+
startdate: options.startdate,
|
|
1506
|
+
enddate: options.enddate
|
|
1507
|
+
};
|
|
1508
|
+
|
|
1509
|
+
if(options.description){ params.description = options.description; }
|
|
1510
|
+
if(options.class_ownership){ params.class_ownership = options.class_ownership; }
|
|
1511
|
+
|
|
1512
|
+
//Setup request with URL and Params
|
|
1513
|
+
var requestAPI = request.post(url).send(params);
|
|
1514
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1515
|
+
|
|
1516
|
+
//Setup token in Authorization header
|
|
1517
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1518
|
+
|
|
1519
|
+
requestAPI.end(function(err, response) {
|
|
1520
|
+
if(err) {
|
|
1521
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1522
|
+
dfd.reject(err);
|
|
1523
|
+
} else {
|
|
1524
|
+
var res = converter.convertClassResponse({data: response.body}) ;
|
|
1525
|
+
dfd.resolve(res);
|
|
1526
|
+
}
|
|
1527
|
+
});
|
|
1528
|
+
} else {
|
|
1529
|
+
err = {};
|
|
1530
|
+
err.message = err.description = 'title or startdate or enddate not found in request options.';
|
|
1531
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1532
|
+
dfd.reject(err);
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
return dfd.promise;
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1538
|
+
//options = {
|
|
1539
|
+
// classid: 'class id',
|
|
1540
|
+
// title: 'class title', //Optional field
|
|
1541
|
+
// startdate: 'Epoch(Unix) timestamp in milliseconds', //Optional field
|
|
1542
|
+
// enddate: 'Epoch(Unix) timestamp in milliseconds', //Optional field
|
|
1543
|
+
// description: '' //Optional field
|
|
1544
|
+
//}
|
|
1545
|
+
function updateClass(options) {
|
|
1546
|
+
var self = this;
|
|
1547
|
+
|
|
1548
|
+
//Initializing promise
|
|
1549
|
+
var dfd = q.defer();
|
|
1550
|
+
|
|
1551
|
+
//Validations
|
|
1552
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1553
|
+
if(err) {
|
|
1554
|
+
dfd.reject(err);
|
|
1555
|
+
} else {
|
|
1556
|
+
if(options && options.classid &&
|
|
1557
|
+
(options.title || options.startdate || options.enddate || options.description))
|
|
1558
|
+
{
|
|
1559
|
+
//Passed all validations, Contruct API url
|
|
1560
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.specificClass;
|
|
1561
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid });
|
|
1562
|
+
|
|
1563
|
+
//Contruct parameters
|
|
1564
|
+
var params = {};
|
|
1565
|
+
|
|
1566
|
+
//Setup request with URL and Params
|
|
1567
|
+
var requestAPI = request.put(url).send(options);
|
|
1568
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1569
|
+
|
|
1570
|
+
//Setup token in Authorization header
|
|
1571
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1572
|
+
|
|
1573
|
+
requestAPI.end(function(err, response) {
|
|
1574
|
+
if(err) {
|
|
1575
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1576
|
+
dfd.reject(err);
|
|
1577
|
+
} else {
|
|
1578
|
+
dfd.resolve(response.body);
|
|
1579
|
+
}
|
|
1580
|
+
});
|
|
1581
|
+
} else {
|
|
1582
|
+
err = {};
|
|
1583
|
+
err.message = err.description = 'classid and atleast one of update field (title or startdate or enddate or description) required in request options.';
|
|
1584
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1585
|
+
dfd.reject(err);
|
|
1586
|
+
}
|
|
1587
|
+
}
|
|
1588
|
+
return dfd.promise;
|
|
1589
|
+
}
|
|
1590
|
+
|
|
1591
|
+
/** options =
|
|
1592
|
+
*{
|
|
1593
|
+
"space_title": "string",
|
|
1594
|
+
"classes": [
|
|
1595
|
+
{
|
|
1596
|
+
"title": "class tiltle",
|
|
1597
|
+
"startdate": 'Epoch(Unix) timestamp in milliseconds',
|
|
1598
|
+
"enddate": 'Epoch(Unix) timestamp in milliseconds',
|
|
1599
|
+
"rowId": 'string with max limit 3 characters,
|
|
1600
|
+
"description": "string",
|
|
1601
|
+
"model": "STRICT",
|
|
1602
|
+
"owner": {
|
|
1603
|
+
"userid": "string" //Mandatory if model is 'STRICT'
|
|
1604
|
+
},
|
|
1605
|
+
"teachers": [
|
|
1606
|
+
{
|
|
1607
|
+
"userid": "string",
|
|
1608
|
+
"email": "string"
|
|
1609
|
+
"first_name": "string"
|
|
1610
|
+
"last_name": "string"
|
|
1611
|
+
"userid": "string" // optional
|
|
1612
|
+
"ext_user_id": "string" // optional
|
|
1613
|
+
"dls_org_status": "string" // optional
|
|
1614
|
+
"ext_account_status": "string" // optional
|
|
1615
|
+
],
|
|
1616
|
+
"products": [ // optional
|
|
1617
|
+
{
|
|
1618
|
+
"productcode": "string", //mandatory
|
|
1619
|
+
"title": ""
|
|
1620
|
+
},
|
|
1621
|
+
{
|
|
1622
|
+
"productcode": "string", //mandatory
|
|
1623
|
+
"title": ""
|
|
1624
|
+
}
|
|
1625
|
+
]
|
|
1626
|
+
}
|
|
1627
|
+
]
|
|
1628
|
+
}
|
|
1629
|
+
*/
|
|
1630
|
+
function createMultipleClasses(options) {
|
|
1631
|
+
var self = this;
|
|
1632
|
+
|
|
1633
|
+
//Initializing promise
|
|
1634
|
+
var dfd = q.defer();
|
|
1635
|
+
|
|
1636
|
+
//Validations
|
|
1637
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1638
|
+
if (err) { dfd.reject(err); }
|
|
1639
|
+
else {
|
|
1640
|
+
if (options.classes.length > 0) {
|
|
1641
|
+
|
|
1642
|
+
//Passed all validations, Contruct API url
|
|
1643
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.createMultipleClasses;
|
|
1644
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
1645
|
+
orgId: self.orgId
|
|
1646
|
+
});
|
|
1647
|
+
|
|
1648
|
+
//Setup request with URL and Params and Query
|
|
1649
|
+
var requestAPI = request.post(url).send(options);
|
|
1650
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1651
|
+
|
|
1652
|
+
//Setup token in Authorization header
|
|
1653
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1654
|
+
|
|
1655
|
+
requestAPI.end(function (err, response) {
|
|
1656
|
+
if (err) {
|
|
1657
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
1658
|
+
dfd.reject(err);
|
|
1659
|
+
}
|
|
1660
|
+
else { dfd.resolve(response.body); }
|
|
1661
|
+
});
|
|
1662
|
+
}
|
|
1663
|
+
else {
|
|
1664
|
+
err = {};
|
|
1665
|
+
err.message = err.description = 'Mandatory parameter classes not found in request options';
|
|
1666
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1667
|
+
dfd.reject(err);
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
return dfd.promise;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
/*
|
|
1674
|
+
options = {
|
|
1675
|
+
"classid": "classid", //mandatory
|
|
1676
|
+
"data": {
|
|
1677
|
+
"title": "assigned path title", //mandatory
|
|
1678
|
+
"duedate": "epoch due date", //mandatory
|
|
1679
|
+
"startdate": "epoch start date", //optional
|
|
1680
|
+
"shared_progress": true, //optional, default=true
|
|
1681
|
+
"path_type": ‘flat’, //optional, default=flat , ['flat', 'hierarchical']
|
|
1682
|
+
"rules": {}, //optional
|
|
1683
|
+
"items": [ //mandatory
|
|
1684
|
+
{
|
|
1685
|
+
"item-code": "required_item-code", //mandatory
|
|
1686
|
+
"item_type": "required_item-type", //mandatory, ['dls-internal','external']
|
|
1687
|
+
"dls_product_code": "product_code" //mandatory only if item_type is 'dls-internal'
|
|
1688
|
+
}
|
|
1689
|
+
],
|
|
1690
|
+
"context": {
|
|
1691
|
+
"bundle-code": "string",
|
|
1692
|
+
"space_key": "string"
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
*/
|
|
1697
|
+
function createAssignedPath(options) {
|
|
1698
|
+
var self = this;
|
|
1699
|
+
var dfd = q.defer();
|
|
1700
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1701
|
+
if(err) { dfd.reject(err); }
|
|
1702
|
+
else {
|
|
1703
|
+
if(options && options.classid && options.data && options.data.title &&
|
|
1704
|
+
options.data.duedate && options.data.items && options.data.items.length > 0) {
|
|
1705
|
+
|
|
1706
|
+
// Passed all validations, Contruct API url
|
|
1707
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.createAssignedPath;
|
|
1708
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid });
|
|
1709
|
+
|
|
1710
|
+
// Setup request with URL and Params
|
|
1711
|
+
var requestAPI = request.post(url)
|
|
1712
|
+
.set('Content-Type', 'application/json')
|
|
1713
|
+
.set('Accept', 'application/json')
|
|
1714
|
+
.send(options.data);
|
|
1715
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1716
|
+
|
|
1717
|
+
//Setup token in Authorization header
|
|
1718
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1719
|
+
|
|
1720
|
+
requestAPI.end(function (error, response) {
|
|
1721
|
+
if(error) {
|
|
1722
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1723
|
+
dfd.reject(err);
|
|
1724
|
+
}
|
|
1725
|
+
else { dfd.resolve(response.body); }
|
|
1726
|
+
});
|
|
1727
|
+
}
|
|
1728
|
+
else {
|
|
1729
|
+
err = {};
|
|
1730
|
+
err.message = err.description = 'Mandatory params - title or classid or duedate or items ' +
|
|
1731
|
+
'not found in request options.';
|
|
1732
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1733
|
+
dfd.reject(err);
|
|
1734
|
+
}
|
|
1735
|
+
}
|
|
1736
|
+
return dfd.promise;
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1739
|
+
/*
|
|
1740
|
+
options = {
|
|
1741
|
+
classid: 'string' //mandatory
|
|
1742
|
+
assignedpathid: 'string' //mandatory
|
|
1743
|
+
}
|
|
1744
|
+
*/
|
|
1745
|
+
function deleteAssignedPath(options) {
|
|
1746
|
+
var self = this;
|
|
1747
|
+
var dfd = q.defer();
|
|
1748
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1749
|
+
if(err) { dfd.reject(err); }
|
|
1750
|
+
else {
|
|
1751
|
+
if(options && options.classid && options.assignedpathid) {
|
|
1752
|
+
|
|
1753
|
+
// Passed all validations, Contruct API url
|
|
1754
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.deleteAssignedPath;
|
|
1755
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid, assignedPathId: options.assignedpathid });
|
|
1756
|
+
|
|
1757
|
+
// Setup request with URL and Params
|
|
1758
|
+
var requestAPI = request.delete(url);
|
|
1759
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1760
|
+
|
|
1761
|
+
//Setup token in Authorization header
|
|
1762
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1763
|
+
|
|
1764
|
+
requestAPI.end(function (error, response) {
|
|
1765
|
+
if(error) {
|
|
1766
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1767
|
+
dfd.reject(err);
|
|
1768
|
+
}
|
|
1769
|
+
else { dfd.resolve(response.body); }
|
|
1770
|
+
});
|
|
1771
|
+
}
|
|
1772
|
+
else {
|
|
1773
|
+
err = {};
|
|
1774
|
+
err.message = err.description = 'Mandatory params - classid or assignedpathid ' +
|
|
1775
|
+
'not found in request options.';
|
|
1776
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1777
|
+
dfd.reject(err);
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
return dfd.promise;
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
/*
|
|
1784
|
+
options = {
|
|
1785
|
+
classid: 'string' //mandatory
|
|
1786
|
+
assignedpathid: 'string' //mandatory
|
|
1787
|
+
data:
|
|
1788
|
+
{
|
|
1789
|
+
title: 'string' //optional
|
|
1790
|
+
startdate: 'string' //optional
|
|
1791
|
+
duedate: 'string' //optional
|
|
1792
|
+
}
|
|
1793
|
+
}
|
|
1794
|
+
*/
|
|
1795
|
+
function updateAssignedPath(options) {
|
|
1796
|
+
var self = this;
|
|
1797
|
+
var dfd = q.defer();
|
|
1798
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1799
|
+
if(err) { dfd.reject(err); }
|
|
1800
|
+
else {
|
|
1801
|
+
if(options && options.classid && options.assignedpathid) {
|
|
1802
|
+
|
|
1803
|
+
// Passed all validations, Contruct API url
|
|
1804
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.deleteAssignedPath;
|
|
1805
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classid, assignedPathId: options.assignedpathid });
|
|
1806
|
+
|
|
1807
|
+
// Setup request with URL and Params
|
|
1808
|
+
var requestAPI = request.put(url);
|
|
1809
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1810
|
+
if(options.data) { requestAPI.send(options.data); }
|
|
1811
|
+
|
|
1812
|
+
//Setup token in Authorization header
|
|
1813
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1814
|
+
|
|
1815
|
+
requestAPI.end(function (error, response) {
|
|
1816
|
+
if(error) {
|
|
1817
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1818
|
+
dfd.reject(err);
|
|
1819
|
+
}
|
|
1820
|
+
else { dfd.resolve(response.body); }
|
|
1821
|
+
});
|
|
1822
|
+
}
|
|
1823
|
+
else {
|
|
1824
|
+
err = {};
|
|
1825
|
+
err.message = err.description = 'Mandatory params - classid or assignedpathid ' +
|
|
1826
|
+
'not found in request options.';
|
|
1827
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1828
|
+
dfd.reject(err);
|
|
1829
|
+
}
|
|
1830
|
+
}
|
|
1831
|
+
return dfd.promise;
|
|
1832
|
+
}
|
|
1833
|
+
|
|
1834
|
+
/**
|
|
1835
|
+
* options={
|
|
1836
|
+
"title": "string", //mandatory
|
|
1837
|
+
"startdate": 0, //mandatory
|
|
1838
|
+
"enddate": 0, //mandatory
|
|
1839
|
+
"path": "string"
|
|
1840
|
+
}
|
|
1841
|
+
*/
|
|
1842
|
+
function createGroup(options) {
|
|
1843
|
+
var self = this;
|
|
1844
|
+
// Initializing promise
|
|
1845
|
+
var dfd = q.defer();
|
|
1846
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1847
|
+
if(err) { dfd.reject(err); }
|
|
1848
|
+
else {
|
|
1849
|
+
// Validations
|
|
1850
|
+
|
|
1851
|
+
if(options && options.title && options.startdate && options.enddate) {
|
|
1852
|
+
// Passed all validations, Contruct API url
|
|
1853
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.allGroups;
|
|
1854
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId });
|
|
1855
|
+
|
|
1856
|
+
// Setup request with URL and Params
|
|
1857
|
+
var requestAPI = request.post(url)
|
|
1858
|
+
.set('Content-Type', 'application/json')
|
|
1859
|
+
.set('Accept', 'application/json')
|
|
1860
|
+
.send(options);
|
|
1861
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1862
|
+
|
|
1863
|
+
//Setup token in Authorization header
|
|
1864
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1865
|
+
|
|
1866
|
+
requestAPI.end(function(error, response) {
|
|
1867
|
+
if(error) {
|
|
1868
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1869
|
+
dfd.reject(error);
|
|
1870
|
+
}
|
|
1871
|
+
else { dfd.resolve(response); }
|
|
1872
|
+
});
|
|
1873
|
+
}
|
|
1874
|
+
else {
|
|
1875
|
+
err = {};
|
|
1876
|
+
err.message = err.description = 'title or startdate or enddate not found in request options.';
|
|
1877
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1878
|
+
dfd.reject(err);
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1881
|
+
return dfd.promise;
|
|
1882
|
+
}
|
|
1883
|
+
|
|
1884
|
+
/* options = {
|
|
1885
|
+
"path": "string" //mandatory, Path of the group(this path group will also be returned,
|
|
1886
|
+
"cursor": "string"
|
|
1887
|
+
};
|
|
1888
|
+
*/
|
|
1889
|
+
function getAllGroupsByPath(options) {
|
|
1890
|
+
var self = this;
|
|
1891
|
+
// Initializing promise
|
|
1892
|
+
var dfd = q.defer();
|
|
1893
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1894
|
+
if(err) { dfd.reject(err); }
|
|
1895
|
+
else {
|
|
1896
|
+
if(options && options.path) {
|
|
1897
|
+
|
|
1898
|
+
// Passed all validations, Contruct API url
|
|
1899
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.allGroups;
|
|
1900
|
+
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId });
|
|
1901
|
+
|
|
1902
|
+
var queryParams = { path: options.path };
|
|
1903
|
+
if(options.cursor) { queryParams.cursor = options.cursor; }
|
|
1904
|
+
|
|
1905
|
+
// Setup request with URL and Params
|
|
1906
|
+
var requestAPI = request.get(url).query(queryParams);
|
|
1907
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1908
|
+
|
|
1909
|
+
//Setup token in Authorization header
|
|
1910
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1911
|
+
|
|
1912
|
+
requestAPI.end(function (error, response) {
|
|
1913
|
+
if(error) {
|
|
1914
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1915
|
+
dfd.reject(err);
|
|
1916
|
+
}
|
|
1917
|
+
else { dfd.resolve(response); }
|
|
1918
|
+
});
|
|
1919
|
+
}
|
|
1920
|
+
else {
|
|
1921
|
+
err = {};
|
|
1922
|
+
err.message = err.description = 'Mandatory params - path not found in request options.';
|
|
1923
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1924
|
+
dfd.reject(err);
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
return dfd.promise;
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
/* options = {
|
|
1931
|
+
"groupId": "string" //mandatory
|
|
1932
|
+
};
|
|
1933
|
+
*/
|
|
1934
|
+
function getAGroup(options) {
|
|
1935
|
+
var self = this;
|
|
1936
|
+
// Initializing promise
|
|
1937
|
+
var dfd = q.defer();
|
|
1938
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1939
|
+
if(err) { dfd.reject(err); }
|
|
1940
|
+
else {
|
|
1941
|
+
if(options && options.groupId) {
|
|
1942
|
+
|
|
1943
|
+
// Passed all validations, Contruct API url
|
|
1944
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.aParticularGroup;
|
|
1945
|
+
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId, groupId: options.groupId });
|
|
1946
|
+
|
|
1947
|
+
// Setup request with URL and Params
|
|
1948
|
+
var requestAPI = request.get(url);
|
|
1949
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
1950
|
+
|
|
1951
|
+
//Setup token in Authorization header
|
|
1952
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
1953
|
+
|
|
1954
|
+
requestAPI.end(function (error, response) {
|
|
1955
|
+
if(error) {
|
|
1956
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
1957
|
+
dfd.reject(err);
|
|
1958
|
+
}
|
|
1959
|
+
else { dfd.resolve(response); }
|
|
1960
|
+
});
|
|
1961
|
+
}
|
|
1962
|
+
else {
|
|
1963
|
+
err = {};
|
|
1964
|
+
err.message = err.description = 'Mandatory params - groupId not found in request options.';
|
|
1965
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
1966
|
+
dfd.reject(err);
|
|
1967
|
+
}
|
|
1968
|
+
}
|
|
1969
|
+
return dfd.promise;
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1972
|
+
/* options = {
|
|
1973
|
+
"groupId": "string" //mandatory
|
|
1974
|
+
"body": {
|
|
1975
|
+
"title": "string"
|
|
1976
|
+
"startdate": "string",
|
|
1977
|
+
"enddate":"string"
|
|
1978
|
+
}
|
|
1979
|
+
};
|
|
1980
|
+
*/
|
|
1981
|
+
function updateGroup(options) {
|
|
1982
|
+
var self = this;
|
|
1983
|
+
// Initializing promise
|
|
1984
|
+
var dfd = q.defer();
|
|
1985
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
1986
|
+
if(err) { dfd.reject(err); }
|
|
1987
|
+
else {
|
|
1988
|
+
if(options && options.groupId) {
|
|
1989
|
+
|
|
1990
|
+
// Passed all validations, Contruct API url
|
|
1991
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.aParticularGroup;
|
|
1992
|
+
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId, groupId: options.groupId });
|
|
1993
|
+
|
|
1994
|
+
// Setup request with URL and Params
|
|
1995
|
+
var requestAPI = request.put(url)
|
|
1996
|
+
.set('Content-Type', 'application/json')
|
|
1997
|
+
.set('Accept', 'application/json')
|
|
1998
|
+
.send(options.body);
|
|
1999
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2000
|
+
|
|
2001
|
+
//Setup token in Authorization header
|
|
2002
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2003
|
+
|
|
2004
|
+
requestAPI.end(function (error, response) {
|
|
2005
|
+
if(error) {
|
|
2006
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2007
|
+
dfd.reject(err);
|
|
2008
|
+
}
|
|
2009
|
+
else { dfd.resolve(response); }
|
|
2010
|
+
});
|
|
2011
|
+
}
|
|
2012
|
+
else {
|
|
2013
|
+
err = {};
|
|
2014
|
+
err.message = err.description = 'Mandatory params - groupId not found in ' +
|
|
2015
|
+
'request options.';
|
|
2016
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2017
|
+
dfd.reject(err);
|
|
2018
|
+
}
|
|
2019
|
+
}
|
|
2020
|
+
return dfd.promise;
|
|
2021
|
+
}
|
|
2022
|
+
|
|
2023
|
+
/* options = {
|
|
2024
|
+
"groupId": "string" //mandatory
|
|
2025
|
+
};
|
|
2026
|
+
*/
|
|
2027
|
+
function deleteGroup(options) {
|
|
2028
|
+
var self = this;
|
|
2029
|
+
// Initializing promise
|
|
2030
|
+
var dfd = q.defer();
|
|
2031
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2032
|
+
if(err) { dfd.reject(err); }
|
|
2033
|
+
else {
|
|
2034
|
+
if(options && options.groupId) {
|
|
2035
|
+
|
|
2036
|
+
// Passed all validations, Contruct API url
|
|
2037
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.aParticularGroup;
|
|
2038
|
+
url = helpers.api.constructAPIUrl(url,{ orgId: self.orgId, groupId: options.groupId });
|
|
2039
|
+
|
|
2040
|
+
// Setup request with URL and Params
|
|
2041
|
+
var requestAPI = request.delete(url);
|
|
2042
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2043
|
+
|
|
2044
|
+
//Setup token in Authorization header
|
|
2045
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2046
|
+
|
|
2047
|
+
requestAPI.end(function (error, response) {
|
|
2048
|
+
if(error) {
|
|
2049
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2050
|
+
dfd.reject(err);
|
|
2051
|
+
}
|
|
2052
|
+
else { dfd.resolve(response); }
|
|
2053
|
+
});
|
|
2054
|
+
}
|
|
2055
|
+
else {
|
|
2056
|
+
err = {};
|
|
2057
|
+
err.message = err.description = 'Mandatory params - groupId not found in ' +
|
|
2058
|
+
'request options.';
|
|
2059
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2060
|
+
dfd.reject(err);
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2063
|
+
return dfd.promise;
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
/*
|
|
2067
|
+
options = {
|
|
2068
|
+
groupId: "string", //mandatory
|
|
2069
|
+
cursor: "cursor"
|
|
2070
|
+
}
|
|
2071
|
+
*/
|
|
2072
|
+
function getAllMembersOfAGroup(options) {
|
|
2073
|
+
var self = this;
|
|
2074
|
+
// Initializing promise
|
|
2075
|
+
var dfd = q.defer(), params = {};
|
|
2076
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2077
|
+
if(err) { dfd.reject(err); }
|
|
2078
|
+
// Validations
|
|
2079
|
+
else{
|
|
2080
|
+
if(options && options.groupId) {
|
|
2081
|
+
// Passed all validations, Contruct API url
|
|
2082
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2083
|
+
self.config.AUTH_API_URLS.getAllMembersOfAGroup;
|
|
2084
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
2085
|
+
orgId: self.orgId,
|
|
2086
|
+
groupId: options.groupId
|
|
2087
|
+
});
|
|
2088
|
+
|
|
2089
|
+
// Setup request with URL and Param
|
|
2090
|
+
if(options.cursor){ params.cursor = options.cursor };
|
|
2091
|
+
|
|
2092
|
+
var requestAPI = request.get(url)
|
|
2093
|
+
.set('Content-Type', 'application/json')
|
|
2094
|
+
.set('Accept', 'application/json')
|
|
2095
|
+
.send(params);
|
|
2096
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2097
|
+
|
|
2098
|
+
//Setup token in Authorization header
|
|
2099
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2100
|
+
|
|
2101
|
+
requestAPI.end(function(error, response) {
|
|
2102
|
+
if(error) {
|
|
2103
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2104
|
+
dfd.reject(error);
|
|
2105
|
+
}
|
|
2106
|
+
else { dfd.resolve(response); }
|
|
2107
|
+
});
|
|
2108
|
+
} else {
|
|
2109
|
+
err = {};
|
|
2110
|
+
err.message = err.description = 'Mandatory param - groupId not found in request options.';
|
|
2111
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2112
|
+
dfd.reject(err);
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
return dfd.promise;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
/*
|
|
2119
|
+
options = {
|
|
2120
|
+
path: "string", //mandatory
|
|
2121
|
+
cursor: "string"
|
|
2122
|
+
}
|
|
2123
|
+
*/
|
|
2124
|
+
function getAllGroupMembersByPath(options) {
|
|
2125
|
+
var self = this;
|
|
2126
|
+
// Initializing promise
|
|
2127
|
+
var dfd = q.defer(), params = {};
|
|
2128
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2129
|
+
if(err) { dfd.reject(err); }
|
|
2130
|
+
// Validations
|
|
2131
|
+
else {
|
|
2132
|
+
if(options && options.path) {
|
|
2133
|
+
// Passed all validations, Contruct API url
|
|
2134
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2135
|
+
self.config.AUTH_API_URLS.getAllGroupMembersByPath;
|
|
2136
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
2137
|
+
orgId: self.orgId
|
|
2138
|
+
});
|
|
2139
|
+
|
|
2140
|
+
// Setup request with URL and Params
|
|
2141
|
+
params.path = options.path;
|
|
2142
|
+
if(options.cursor){ params.cursor = options.cursor };
|
|
2143
|
+
|
|
2144
|
+
var requestAPI = request.get(url)
|
|
2145
|
+
.set('Content-Type', 'application/json')
|
|
2146
|
+
.set('Accept', 'application/json')
|
|
2147
|
+
.query(params);
|
|
2148
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2149
|
+
|
|
2150
|
+
//Setup token in Authorization header
|
|
2151
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2152
|
+
|
|
2153
|
+
requestAPI.end(function(error, response) {
|
|
2154
|
+
if(error) {
|
|
2155
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2156
|
+
dfd.reject(error);
|
|
2157
|
+
}
|
|
2158
|
+
else { dfd.resolve(response); }
|
|
2159
|
+
});
|
|
2160
|
+
} else {
|
|
2161
|
+
err = {};
|
|
2162
|
+
err.message = err.description = 'Mandatory param - path not found in request options.';
|
|
2163
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2164
|
+
dfd.reject(err);
|
|
2165
|
+
}
|
|
2166
|
+
}
|
|
2167
|
+
return dfd.promise;
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
/*
|
|
2171
|
+
options = {
|
|
2172
|
+
|
|
2173
|
+
groupId: "string", //mandatory
|
|
2174
|
+
body: {
|
|
2175
|
+
users: [
|
|
2176
|
+
{
|
|
2177
|
+
id: "string", // User’s external id - mandatory
|
|
2178
|
+
dls_user_id: "string", // User’s dls id - mandatory
|
|
2179
|
+
email: "string", //mandatory
|
|
2180
|
+
first_name: "string", //mandatory
|
|
2181
|
+
last_name: "string", //mandatory
|
|
2182
|
+
name: "string", //mandatory
|
|
2183
|
+
role: "string" //mandatory
|
|
2184
|
+
}
|
|
2185
|
+
]
|
|
2186
|
+
}
|
|
2187
|
+
}
|
|
2188
|
+
*/
|
|
2189
|
+
function createMultiUserGroupMembership(options) {
|
|
2190
|
+
var self = this;
|
|
2191
|
+
// Initializing promise
|
|
2192
|
+
var dfd = q.defer(), params = {};
|
|
2193
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2194
|
+
if(err) { dfd.reject(err); }
|
|
2195
|
+
// Validations
|
|
2196
|
+
|
|
2197
|
+
else {
|
|
2198
|
+
if(options && options.groupId && options.body && options.body.users && (options.body.users.length > 0)) {
|
|
2199
|
+
// Passed all validations, Contruct API url
|
|
2200
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2201
|
+
self.config.AUTH_API_URLS.userGroupMembership;
|
|
2202
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, groupId: options.groupId });
|
|
2203
|
+
|
|
2204
|
+
// Setup request with URL and Params
|
|
2205
|
+
params = options.body;
|
|
2206
|
+
|
|
2207
|
+
var requestAPI = request.post(url)
|
|
2208
|
+
.set('Content-Type', 'application/json')
|
|
2209
|
+
.set('Accept', 'application/json')
|
|
2210
|
+
.send(params);
|
|
2211
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2212
|
+
//Setup token in Authorization header
|
|
2213
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2214
|
+
|
|
2215
|
+
requestAPI.end(function(error, response) {
|
|
2216
|
+
if(error) {
|
|
2217
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2218
|
+
dfd.reject(error);
|
|
2219
|
+
}
|
|
2220
|
+
else { dfd.resolve(response); }
|
|
2221
|
+
});
|
|
2222
|
+
} else {
|
|
2223
|
+
err = {};
|
|
2224
|
+
err.message = err.description = 'Mandatory param - groupId or body or body.users(min. 1 user) ' +
|
|
2225
|
+
'not found in request options.'
|
|
2226
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2227
|
+
dfd.reject(err);
|
|
2228
|
+
}
|
|
2229
|
+
}
|
|
2230
|
+
return dfd.promise;
|
|
2231
|
+
}
|
|
2232
|
+
|
|
2233
|
+
/*
|
|
2234
|
+
options = {
|
|
2235
|
+
"groupId": "string", //mandatory
|
|
2236
|
+
"body": { //mandatory
|
|
2237
|
+
users: [ //mandatory
|
|
2238
|
+
{
|
|
2239
|
+
id: "string" // User’s external id - mandatory
|
|
2240
|
+
}
|
|
2241
|
+
]
|
|
2242
|
+
}
|
|
2243
|
+
*/
|
|
2244
|
+
function deleteMultiUserGroupMembership(options) {
|
|
2245
|
+
var self = this;
|
|
2246
|
+
// Initializing promise
|
|
2247
|
+
var dfd = q.defer(), params = {};
|
|
2248
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2249
|
+
if(err) { dfd.reject(err); }
|
|
2250
|
+
// Validations
|
|
2251
|
+
else {
|
|
2252
|
+
if(options && options.groupId && options.body && options.body.users && (options.body.users.length > 0)) {
|
|
2253
|
+
// Passed all validations, Contruct API url
|
|
2254
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2255
|
+
self.config.AUTH_API_URLS.userGroupMembership;
|
|
2256
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
2257
|
+
orgId: self.orgId,
|
|
2258
|
+
groupId: options.groupId
|
|
2259
|
+
});
|
|
2260
|
+
|
|
2261
|
+
// Setup request with URL and Params
|
|
2262
|
+
params = options.body;
|
|
2263
|
+
var requestAPI = request.delete(url)
|
|
2264
|
+
.set('Content-Type', 'application/json')
|
|
2265
|
+
.set('Accept', 'application/json')
|
|
2266
|
+
.send(params);
|
|
2267
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2268
|
+
|
|
2269
|
+
//Setup token in Authorization header
|
|
2270
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2271
|
+
requestAPI.end(function(error, response) {
|
|
2272
|
+
if(error) {
|
|
2273
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2274
|
+
dfd.reject(error);
|
|
2275
|
+
}
|
|
2276
|
+
else { dfd.resolve(response); }
|
|
2277
|
+
});
|
|
2278
|
+
} else {
|
|
2279
|
+
err = {};
|
|
2280
|
+
err.message = err.description = 'Mandatory param - groupId or body or body.users(min. 1 user) ' +
|
|
2281
|
+
'not found in request options.'
|
|
2282
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2283
|
+
dfd.reject(err);
|
|
2284
|
+
}
|
|
2285
|
+
}
|
|
2286
|
+
return dfd.promise;
|
|
2287
|
+
}
|
|
2288
|
+
|
|
2289
|
+
/* options= {
|
|
2290
|
+
"groupId": "string", //mandatory
|
|
2291
|
+
};
|
|
2292
|
+
*/
|
|
2293
|
+
function archiveGroup(options) {
|
|
2294
|
+
var self = this;
|
|
2295
|
+
// Initializing promise
|
|
2296
|
+
var dfd = q.defer();
|
|
2297
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2298
|
+
if(err) { dfd.reject(err); }
|
|
2299
|
+
else {
|
|
2300
|
+
if (options && options.groupId) {
|
|
2301
|
+
// Passed all validations, Contruct API url
|
|
2302
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.archiveAParticularGroup;
|
|
2303
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
2304
|
+
orgId: self.orgId,
|
|
2305
|
+
groupId: options.groupId
|
|
2306
|
+
});
|
|
2307
|
+
|
|
2308
|
+
// Setup request with URL and Params
|
|
2309
|
+
var requestAPI = request.put(url)
|
|
2310
|
+
.set('Content-Type', 'application/json')
|
|
2311
|
+
.set('Accept', 'application/json')
|
|
2312
|
+
.send({});
|
|
2313
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2314
|
+
|
|
2315
|
+
//Setup token in Authorization header
|
|
2316
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2317
|
+
|
|
2318
|
+
requestAPI.end(function (error, response) {
|
|
2319
|
+
if (error) {
|
|
2320
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2321
|
+
dfd.reject(err);
|
|
2322
|
+
} else {
|
|
2323
|
+
dfd.resolve(response.body);
|
|
2324
|
+
}
|
|
2325
|
+
});
|
|
2326
|
+
}
|
|
2327
|
+
else {
|
|
2328
|
+
err = {};
|
|
2329
|
+
err.message = err.description = 'Mandatory param - groupId not found in request options.';
|
|
2330
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2331
|
+
dfd.reject(err);
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
return dfd.promise;
|
|
2335
|
+
}
|
|
2336
|
+
|
|
2337
|
+
/* options= {
|
|
2338
|
+
"groupId": "string", //mandatory
|
|
2339
|
+
};
|
|
2340
|
+
*/
|
|
2341
|
+
function unarchiveGroup(options) {
|
|
2342
|
+
var self = this;
|
|
2343
|
+
// Initializing promise
|
|
2344
|
+
var dfd = q.defer();
|
|
2345
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2346
|
+
if(err) { dfd.reject(err); }
|
|
2347
|
+
else {
|
|
2348
|
+
if (options && options.groupId) {
|
|
2349
|
+
// Passed all validations, Contruct API url
|
|
2350
|
+
var url = self.config.DEFAULT_HOSTS.AUTH + self.config.AUTH_API_URLS.unarchiveAParticularGroup;
|
|
2351
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
2352
|
+
orgId: self.orgId,
|
|
2353
|
+
groupId: options.groupId
|
|
2354
|
+
});
|
|
2355
|
+
|
|
2356
|
+
// Setup request with URL and Params
|
|
2357
|
+
var requestAPI = request.put(url)
|
|
2358
|
+
.set('Content-Type', 'application/json')
|
|
2359
|
+
.set('Accept', 'application/json')
|
|
2360
|
+
.send({});
|
|
2361
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2362
|
+
|
|
2363
|
+
//Setup token in Authorization header
|
|
2364
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2365
|
+
|
|
2366
|
+
requestAPI.end(function (error, response) {
|
|
2367
|
+
if (error) {
|
|
2368
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2369
|
+
dfd.reject(err);
|
|
2370
|
+
} else {
|
|
2371
|
+
dfd.resolve(response.body);
|
|
2372
|
+
}
|
|
2373
|
+
});
|
|
2374
|
+
}
|
|
2375
|
+
else {
|
|
2376
|
+
err = {};
|
|
2377
|
+
err.message = err.description = 'Mandatory param - groupId not found in request options.';
|
|
2378
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2379
|
+
dfd.reject(err);
|
|
2380
|
+
}
|
|
2381
|
+
}
|
|
2382
|
+
return dfd.promise;
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2385
|
+
/*
|
|
2386
|
+
options = {
|
|
2387
|
+
userId: "string", //mandatory
|
|
2388
|
+
path: "string", //mandatory
|
|
2389
|
+
cursor: "string", // optional
|
|
2390
|
+
}
|
|
2391
|
+
*/
|
|
2392
|
+
function getMyAllMemberships(options) {
|
|
2393
|
+
var self = this;
|
|
2394
|
+
// Initializing promise
|
|
2395
|
+
var dfd = q.defer(), params = {};
|
|
2396
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2397
|
+
if(err) { dfd.reject(err); }
|
|
2398
|
+
// Validations
|
|
2399
|
+
else {
|
|
2400
|
+
if(options && options.userId && options.path) {
|
|
2401
|
+
// Passed all validations, Contruct API url
|
|
2402
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2403
|
+
self.config.AUTH_API_URLS.getMyAllMemberships;
|
|
2404
|
+
url = helpers.api.constructAPIUrl(url, {
|
|
2405
|
+
orgId: self.orgId,
|
|
2406
|
+
userId: options.userId
|
|
2407
|
+
});
|
|
2408
|
+
|
|
2409
|
+
// Setup request with URL and Params
|
|
2410
|
+
params.path = options.path;
|
|
2411
|
+
if(options.cursor){ params.cursor = options.cursor };
|
|
2412
|
+
|
|
2413
|
+
var requestAPI = request.get(url)
|
|
2414
|
+
.set('Content-Type', 'application/json')
|
|
2415
|
+
.set('Accept', 'application/json')
|
|
2416
|
+
.query(params);
|
|
2417
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2418
|
+
|
|
2419
|
+
//Setup token in Authorization header
|
|
2420
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2421
|
+
|
|
2422
|
+
requestAPI.end(function(error, response) {
|
|
2423
|
+
if(error) {
|
|
2424
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, error);
|
|
2425
|
+
dfd.reject(error);
|
|
2426
|
+
}
|
|
2427
|
+
else { dfd.resolve(response); }
|
|
2428
|
+
});
|
|
2429
|
+
} else {
|
|
2430
|
+
err = {};
|
|
2431
|
+
err.message = err.description = 'Mandatory param - userId or path not found in request options.';
|
|
2432
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2433
|
+
dfd.reject(err);
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
return dfd.promise;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
/*
|
|
2440
|
+
options = {
|
|
2441
|
+
classId: "string", //mandatory
|
|
2442
|
+
body : {
|
|
2443
|
+
items : //mandatory, Min: 1, Max: 200
|
|
2444
|
+
[{
|
|
2445
|
+
"productcode": "string",
|
|
2446
|
+
"item-code": "string",
|
|
2447
|
+
"link-statementid": "string",
|
|
2448
|
+
"groupid": "string",
|
|
2449
|
+
“type”: “dls-internal”, //mandatory
|
|
2450
|
+
"data": { ... }
|
|
2451
|
+
}]
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
*/
|
|
2455
|
+
function addItemsToShowcaseOfAClass(options){
|
|
2456
|
+
var self = this;
|
|
2457
|
+
// Initializing promise
|
|
2458
|
+
var dfd = q.defer();
|
|
2459
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2460
|
+
if(err) { dfd.reject(err); }
|
|
2461
|
+
// Validations
|
|
2462
|
+
else {
|
|
2463
|
+
if(options && options.classId && options.body) {
|
|
2464
|
+
// Passed all validations, Contruct API url
|
|
2465
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2466
|
+
self.config.AUTH_API_URLS.showcaseItems;
|
|
2467
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classId });
|
|
2468
|
+
|
|
2469
|
+
// Setup request with URL and Params
|
|
2470
|
+
var requestAPI = request.post(url);
|
|
2471
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2472
|
+
requestAPI.send(options.body);
|
|
2473
|
+
|
|
2474
|
+
// Setup token in Authorization header
|
|
2475
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2476
|
+
|
|
2477
|
+
// Call Add items to showcase API
|
|
2478
|
+
requestAPI.end(function(err, response) {
|
|
2479
|
+
if(err) {
|
|
2480
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
2481
|
+
dfd.reject(err);
|
|
2482
|
+
}
|
|
2483
|
+
else { dfd.resolve(response.body); }
|
|
2484
|
+
});
|
|
2485
|
+
} else {
|
|
2486
|
+
err = {};
|
|
2487
|
+
err.message = err.description = 'Mandatory param - classId or body not found in request options.';
|
|
2488
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2489
|
+
dfd.reject(err);
|
|
2490
|
+
}
|
|
2491
|
+
}
|
|
2492
|
+
return dfd.promise;
|
|
2493
|
+
}
|
|
2494
|
+
|
|
2495
|
+
/*
|
|
2496
|
+
options = {
|
|
2497
|
+
classId: "string", //mandatory
|
|
2498
|
+
body : {
|
|
2499
|
+
items : [ "id1", "id2", "id3", ... ] //mandatory
|
|
2500
|
+
}
|
|
2501
|
+
}
|
|
2502
|
+
*/
|
|
2503
|
+
function deleteItemsFromShowcaseOfAClass(options){
|
|
2504
|
+
var self = this;
|
|
2505
|
+
// Initializing promise
|
|
2506
|
+
var dfd = q.defer();
|
|
2507
|
+
var err = helpers.validations.isAuthenticated(self.orgId, self.token);
|
|
2508
|
+
if(err) { dfd.reject(err); }
|
|
2509
|
+
// Validations
|
|
2510
|
+
else {
|
|
2511
|
+
if(options && options.classId && options.body) {
|
|
2512
|
+
// Passed all validations, Contruct API url
|
|
2513
|
+
var url = self.config.DEFAULT_HOSTS.AUTH +
|
|
2514
|
+
self.config.AUTH_API_URLS.showcaseItems;
|
|
2515
|
+
url = helpers.api.constructAPIUrl(url, { orgId: self.orgId, classId: options.classId });
|
|
2516
|
+
|
|
2517
|
+
// Setup request with URL and Params
|
|
2518
|
+
var requestAPI = request.delete(url);
|
|
2519
|
+
if(self.traceid) { requestAPI.set('X-Amzn-Trace-Id', self.traceid); }
|
|
2520
|
+
requestAPI.send(options.body);
|
|
2521
|
+
|
|
2522
|
+
// Setup token in Authorization header
|
|
2523
|
+
requestAPI = helpers.api.setupAPIToken(requestAPI, self.token);
|
|
2524
|
+
|
|
2525
|
+
// Call delete items from showcase API
|
|
2526
|
+
requestAPI.end(function(err, response) {
|
|
2527
|
+
if(err) {
|
|
2528
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.API_ERROR, err);
|
|
2529
|
+
dfd.reject(err);
|
|
2530
|
+
}
|
|
2531
|
+
else { dfd.resolve(response.body); }
|
|
2532
|
+
});
|
|
2533
|
+
} else {
|
|
2534
|
+
err = {};
|
|
2535
|
+
err.message = err.description = 'Mandatory param - classId or body not found in request options.';
|
|
2536
|
+
err = new DLSError(helpers.errors.ERROR_TYPES.SDK_ERROR, err);
|
|
2537
|
+
dfd.reject(err);
|
|
2538
|
+
}
|
|
2539
|
+
}
|
|
2540
|
+
return dfd.promise;
|
|
2541
|
+
}
|