Skip to content

Commit b616d92

Browse files
committed
Merge pull request #30 from docusign/next
Seamless promisification
2 parents becec5e + 3ecc888 commit b616d92

20 files changed

+2720
-1061
lines changed

components/admin.js

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ exports.init = function (accountId, baseUrl, accessToken) {
1010
* @memberOf Admin
1111
* @public
1212
* @function
13-
* @param {function} callback - Returned in the form of function(error, response).
13+
* @param {function} [callback] - Returned in the form of function(error, response).
14+
* @returns {Promise} - A thenable bluebird Promise; if callback is given it is called before the promise is resolved
1415
*/
1516

1617
getOrgAccountInfo: function (callback) {
17-
getOrgAccountInfo(accountId, accessToken, callback);
18+
return getOrgAccountInfo(accountId, accessToken).asCallback(callback);
1819
},
1920

2021
/**
@@ -23,11 +24,12 @@ exports.init = function (accountId, baseUrl, accessToken) {
2324
* @memberOf Admin
2425
* @public
2526
* @function
26-
* @param {function} callback - Returned in the form of function(error, users).
27+
* @param {function} [callback] - Returned in the form of function(error, users).
28+
* @returns {Promise} - A thenable bluebird Promise; if callback is given it is called before the promise is resolved
2729
*/
2830

2931
getUserList: function (callback) {
30-
getUserList(accessToken, baseUrl, callback);
32+
return getUserList(accessToken, baseUrl).asCallback(callback);
3133
},
3234

3335
/**
@@ -51,11 +53,12 @@ exports.init = function (accountId, baseUrl, accessToken) {
5153
* @param {string} forgottenPasswordInfo.forgottenPasswordAnswer3
5254
* @param {string} forgottenPasswordInfo.forgottenPasswordQuestion4
5355
* @param {string} forgottenPasswordInfo.forgottenPasswordAnswer4
54-
* @param {function} callback - Returned in the form of function(error, response).
56+
* @param {function} [callback] - Returned in the form of function(error, response).
57+
* @returns {Promise} - A thenable bluebird Promise; if callback is given it is called before the promise is resolved
5558
*/
5659

5760
addUsers: function (usersToAdd, callback) {
58-
addUsers(accessToken, baseUrl, usersToAdd, callback);
61+
return addUsers(accessToken, baseUrl, usersToAdd).asCallback(callback);
5962
},
6063

6164
/**
@@ -65,11 +68,12 @@ exports.init = function (accountId, baseUrl, accessToken) {
6568
* @public
6669
* @function
6770
* @param {array} usersToDelete - Collection of users in the form of {userId: userId}
68-
* @param {function} callback - Returned in the form of function(error, response).
71+
* @param {function} [callback] - Returned in the form of function(error, response).
72+
* @returns {Promise} - A thenable bluebird Promise; if callback is given it is called before the promise is resolved
6973
*/
7074

7175
deleteUsers: function (usersToDelete, callback) {
72-
deleteUsers(accessToken, baseUrl, usersToDelete, callback);
76+
return deleteUsers(accessToken, baseUrl, usersToDelete).asCallback(callback);
7377
},
7478

7579
/**
@@ -78,11 +82,12 @@ exports.init = function (accountId, baseUrl, accessToken) {
7882
* @memberOf Admin
7983
* @public
8084
* @function
81-
* @param {function} callback - Returned in the form of function(error, response).
85+
* @param {function} [callback] - Returned in the form of function(error, response).
86+
* @returns {Promise} - A thenable bluebird Promise; if callback is given it is called before the promise is resolved
8287
*/
8388

8489
getTemplates: function (callback) {
85-
getTemplates(accessToken, baseUrl, callback);
90+
return getTemplates(accessToken, baseUrl).asCallback(callback);
8691
},
8792

8893
/**
@@ -96,11 +101,12 @@ exports.init = function (accountId, baseUrl, accessToken) {
96101
* @memberOf Admin
97102
* @public
98103
* @function
99-
* @param {function} callback - Returned in the form of function(error, plan).
104+
* @param {function} [callback] - Returned in the form of function(error, plan).
105+
* @returns {Promise} - A thenable bluebird Promise; if callback is given it is called before the promise is resolved
100106
*/
101107

102108
getPlan: function (callback) {
103-
getPlan(accessToken, baseUrl, callback);
109+
return getPlan(accessToken, baseUrl).asCallback(callback);
104110
}
105111
};
106112
};
@@ -113,16 +119,16 @@ exports.init = function (accountId, baseUrl, accessToken) {
113119
* @function
114120
* @param {string} accountId - DocuSign AccountId.
115121
* @param {string} apiToken - DocuSign API OAuth2 access token.
116-
* @param {function} callback - Returned in the form of function(error, response).
122+
* @returns {Promise} - A thenable bluebird Promise fulfilled with organization account info
117123
*/
118-
function getOrgAccountInfo (accountId, apiToken, callback) {
124+
function getOrgAccountInfo (accountId, apiToken) {
119125
var options = {
120126
method: 'GET',
121127
url: dsUtils.getApiUrl() + '/accounts/' + accountId,
122128
headers: dsUtils.getHeaders(apiToken)
123129
};
124130

125-
dsUtils.makeRequest('Get DS Org Account Info', options, callback);
131+
return dsUtils.makeRequest('Get DS Org Account Info', options);
126132
}
127133

128134
/**
@@ -133,7 +139,7 @@ function getOrgAccountInfo (accountId, apiToken, callback) {
133139
* @function
134140
* @param {string} apiToken - DocuSign API OAuth2 access token.
135141
* @param {string} baseUrl - DocuSign API base URL.
136-
* @param {function} callback - Returned in the form of function(error, users).
142+
* @returns {Promise} - A thenable bluebird Promise fulfilled with user objects.
137143
*/
138144
function getUserList (apiToken, baseUrl, callback) {
139145
var options = {
@@ -142,11 +148,8 @@ function getUserList (apiToken, baseUrl, callback) {
142148
headers: dsUtils.getHeaders(apiToken, baseUrl)
143149
};
144150

145-
dsUtils.makeRequest('Get DS Account User List', options, function (error, response) {
146-
if (error) {
147-
return callback(error);
148-
}
149-
callback(null, response.users);
151+
return dsUtils.makeRequest('Get DS Account User List', options).then(function (response) {
152+
return response.users;
150153
});
151154
}
152155

@@ -173,9 +176,9 @@ function getUserList (apiToken, baseUrl, callback) {
173176
* @param {string} forgottenPasswordInfo.forgottenPasswordAnswer3
174177
* @param {string} forgottenPasswordInfo.forgottenPasswordQuestion4
175178
* @param {string} forgottenPasswordInfo.forgottenPasswordAnswer4
176-
* @param {function} callback - Returned in the form of function(error, response).
179+
* @returns {Promise} - A thenable bluebird Promise
177180
*/
178-
function addUsers (apiToken, baseUrl, usersToAdd, callback) {
181+
function addUsers (apiToken, baseUrl, usersToAdd) {
179182
var users = usersToAdd.map(function (user) {
180183
return {
181184
userName: user.first + ' ' + user.last,
@@ -199,7 +202,7 @@ function addUsers (apiToken, baseUrl, usersToAdd, callback) {
199202
}
200203
};
201204

202-
dsUtils.makeRequest('Add Users to DS Account', options, callback);
205+
return dsUtils.makeRequest('Add Users to DS Account', options);
203206
}
204207

205208
/**
@@ -211,9 +214,9 @@ function addUsers (apiToken, baseUrl, usersToAdd, callback) {
211214
* @param {string} apiToken - DS API OAuth2 access token.
212215
* @param {string} baseUrl - DS API base URL.
213216
* @param {array} usersToDelete - Collection of users in the form of {userId: userId}
214-
* @param {function} callback - Returned in the form of function(error, response).
217+
* @returns {Promise} - A thenable bluebird Promise
215218
*/
216-
function deleteUsers (apiToken, baseUrl, usersToDelete, callback) {
219+
function deleteUsers (apiToken, baseUrl, usersToDelete) {
217220
var userIds = usersToDelete.map(function (user) {
218221
return {
219222
userId: user.userId
@@ -229,7 +232,7 @@ function deleteUsers (apiToken, baseUrl, usersToDelete, callback) {
229232
}
230233
};
231234

232-
dsUtils.makeRequest('Delete Users in DS Account', options, callback);
235+
return dsUtils.makeRequest('Delete Users in DS Account', options);
233236
}
234237

235238
/**
@@ -240,16 +243,16 @@ function deleteUsers (apiToken, baseUrl, usersToDelete, callback) {
240243
* @function
241244
* @param {string} apiToken - DocuSign API OAuth2 access token.
242245
* @param {string} baseUrl - DocuSign API base URL.
243-
* @param {function} callback - Returned in the form of function(error, response).
246+
* @returns {Promise} - A thenable bluebird Promise fulfilled with list of templates
244247
*/
245-
function getTemplates (apiToken, baseUrl, callback) {
248+
function getTemplates (apiToken, baseUrl) {
246249
var options = {
247250
method: 'GET',
248251
url: baseUrl + '/templates',
249252
headers: dsUtils.getHeaders(apiToken)
250253
};
251254

252-
dsUtils.makeRequest('Get Templates', options, callback);
255+
return dsUtils.makeRequest('Get Templates', options);
253256
}
254257

255258
/**
@@ -265,27 +268,23 @@ function getTemplates (apiToken, baseUrl, callback) {
265268
* @function
266269
* @param {string} apiToken - DocuSign API OAuth2 access token.
267270
* @param {string} baseUrl - DocuSign API base URL.
268-
* @param {function} callback - Returned in the form of function(error, plan).
271+
* @returns {Promise} - A thenable bluebird Promise fulfilled with the account plan.
269272
*/
270-
function getPlan (apiToken, baseUrl, callback) {
273+
function getPlan (apiToken, baseUrl) {
271274
var options = {
272275
method: 'GET',
273276
url: baseUrl,
274277
headers: dsUtils.getHeaders(apiToken)
275278
};
276279

277-
dsUtils.makeRequest('Get Billing Plan Info', options, function (error, plan) {
278-
if (error) {
279-
return callback(error);
280-
}
281-
280+
return dsUtils.makeRequest('Get Billing Plan Info', options).then(function (plan) {
282281
var envelopesLeft = plan.billingPeriodEnvelopesAllowed - plan.billingPeriodEnvelopesSent;
283282

284283
// a negative number signifies unlimited amount
285284
plan.envelopesLeft = isNaN(envelopesLeft) ? -1 : envelopesLeft;
286285

287286
plan.name = plan.planName;
288287

289-
callback(null, plan);
288+
return plan;
290289
});
291290
}

0 commit comments

Comments
 (0)