forked from docusign/docusign-esign-node-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docusign.js
114 lines (95 loc) · 3.02 KB
/
docusign.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/**
* File for combining modules into the main docusign object before exporting.
*
*/
/**
* @namespace Admin
* @desc Public API for DocuSign Admin API
*/
/**
* @namespace Auth
* @desc Public API for DocuSign Auth API
*/
/**
* @namespace Envelopes
* @desc Public API for DocuSign Envelopes API
*/
/**
* @namespace Folders
* @desc Public API for DocuSign Folders API
*/
/**
* @namespace Users
* @desc Public API for DocuSign Users API
*/
var Bluebird = require('bluebird');
// Local Imports
var admin = require('./components/admin');
var users = require('./components/users');
var auth = require('./components/auth');
var folders = require('./components/folders');
var envelopes = require('./components/envelopes');
var dsUtils = require('./dsUtils');
var log = dsUtils.log;
var DocuSignError = dsUtils.DocuSignError;
var internalState = dsUtils.internalState;
// Create DocuSign Object
var docusign = (function () {
function init (integratorKey, targetEnv, debug, callback) {
return new Bluebird(function (resolve, reject) {
targetEnv = targetEnv.toLowerCase();
if (debug) {
log('docusign starting init');
internalState.dsDebug = true;
} else {
internalState.dsDebug = false;
}
if (targetEnv === 'demo') {
internalState.targetEnv = 'demo';
} else if (targetEnv === 'www' || targetEnv === 'live') {
internalState.targetEnv = 'www';
} else {
return reject(new DocuSignError("Invalid environment value. 'Demo' or 'Live' are the only valid environments."));
}
if (integratorKey) {
internalState.integratorKey = integratorKey;
} else {
return reject(new DocuSignError('Integrator key cannot be null or empty string.'));
}
resolve({message: 'successfully initialized'});
}).asCallback(callback);
}
function createClientBase (authInfo, callback) {
return new Bluebird(function (resolve, reject) {
var accountId = authInfo.accountIdGuid;
var baseUrl = authInfo.baseUrl;
var accessToken = authInfo.accessToken;
var adminApi = admin.init(accountId, baseUrl, accessToken);
var envelopesApi = envelopes.init(accountId, baseUrl, accessToken);
var foldersApi = folders.init(accountId, baseUrl, accessToken);
var usersApi = users.init(accountId, baseUrl, accessToken);
var logOut = auth.revokeOauthToken(accessToken, baseUrl);
resolve({
authInfo: authInfo,
admin: adminApi,
envelopes: envelopesApi,
folders: foldersApi,
users: usersApi,
logOut: logOut
});
}).asCallback(callback);
}
function createClient (email, password, callback) {
return auth.getAccountInfoAndToken(email, password).then(function (authInfo) {
return createClientBase(authInfo).asCallback(callback);
});
}
return {
DocuSignError: DocuSignError,
init: init,
getAuthInfo: auth.getAccountInfoAndToken,
createClientFromAuth: createClientBase,
createClient: createClient
};
})();
module.exports = docusign;