Skip to content

Commit 28b5ad9

Browse files
committed
Replace all 'request' library calls with axios.
1 parent bc5216e commit 28b5ad9

7 files changed

Lines changed: 242 additions & 329 deletions

File tree

src/account/index.js

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const request = require('request-promise-native');
1+
const request = require('axios');
22
const errorHandler = require('../error-handler');
33

44
module.exports = class {
@@ -12,19 +12,15 @@ module.exports = class {
1212
}
1313

1414
status() {
15-
return new Promise((resolve, reject) => {
16-
request({
17-
method: 'GET',
18-
url: `${this.url}/account/status`,
19-
auth: this.auth,
20-
agentOptions: this.agentOptions,
15+
return request
16+
.get(`${this.url}/account/status`, {
17+
auth: this.auth
2118
})
22-
.then((response) => {
23-
const res = JSON.parse(response);
24-
if (!res.success) return reject(errorHandler(res.message));
25-
return resolve(res);
26-
})
27-
.catch((err) => reject(err));
28-
});
19+
.then((response) => {
20+
const res = JSON.parse(response);
21+
if (!res.success) return reject(errorHandler(res.message));
22+
return resolve(res);
23+
})
24+
.catch((err) => reject(err));
2925
}
3026
};

src/faxes/index.js

Lines changed: 45 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const fs = require('fs');
2-
const request = require('request-promise-native');
2+
const request = require('axios');
33
const errorHandler = require('../error-handler');
44

55
const Fax = require('./fax');
@@ -66,23 +66,14 @@ module.exports = class {
6666
test_fail: null,
6767
}) {
6868
// eslint-disable-next-line consistent-return
69-
return new Promise((resolve, reject) => {
7069
const formData = {};
7170

7271
Object.keys(options).forEach((rec) => {
7372
if (options[rec] !== null) formData[rec] = options[rec];
7473
if (typeof formData[rec] === 'boolean') formData[rec] = formData[rec].toString();
7574
});
7675

77-
const req = {
78-
method: 'POST',
79-
url: `${this.url}/faxes`,
80-
auth: this.auth,
81-
agentOptions: this.agentOptions,
82-
};
83-
84-
const caller = request(req);
85-
const form = caller.form();
76+
const form = new FormData();
8677
Object.keys(formData).forEach((key) => {
8778
if (typeof formData[key] === 'object' && key === 'tags' && formData[key] !== null) {
8879
Object.keys(formData[key]).forEach((tagkey) => {
@@ -103,47 +94,46 @@ module.exports = class {
10394
}
10495
});
10596

106-
caller
97+
return request
98+
.post(`${this.url}/account/status`, form, {
99+
auth: auth
100+
})
107101
.then((response) => {
108102
const res = JSON.parse(response);
109103
if (!res.success) return reject(errorHandler(res.message));
110104
// eslint-disable-next-line max-len
111105
return resolve(new Fax(this.apiKey, this.apiSecret, this.url, res.success, res.message, res.data));
112106
})
113107
.catch((err) => reject(err));
114-
});
115108
}
116109

117110
testReceive(options = {
118111
file: null,
119112
from_number: null,
120113
to_number: null,
121114
}) {
122-
return new Promise((resolve, reject) => {
123-
const formData = { direction: 'received' };
115+
const form = new FormData();
124116

125-
Object.keys(options).forEach((rec) => {
126-
if (rec === 'file' && options[rec] !== null) {
127-
formData[rec] = fs.createReadStream(options[rec]);
128-
} else if (options[rec] !== null) {
129-
formData[rec] = options[rec];
130-
}
131-
});
117+
form.append('direction', 'received');
132118

133-
request({
134-
method: 'POST',
135-
url: `${this.url}/faxes`,
136-
auth: this.auth,
137-
formData,
138-
agentOptions: this.agentOptions,
139-
})
140-
.then((response) => {
141-
const res = JSON.parse(response);
142-
if (!res.success) return reject(errorHandler(res.message));
143-
return resolve(res);
144-
})
145-
.catch((err) => reject(err));
119+
Object.keys(options).forEach((rec) => {
120+
if (rec === 'file' && options[rec] !== null) {
121+
form.append('fileAttachment', fs.createReadStream(options[rec]));
122+
} else if (options[rec] !== null) {
123+
form.append('rec', options[rec]);
124+
}
146125
});
126+
127+
return request
128+
.post(`${this.url}/faxes`, form, {
129+
auth: auth
130+
})
131+
.then((response) => {
132+
const res = JSON.parse(response);
133+
if (!res.success) return reject(errorHandler(res.message));
134+
return resolve(res);
135+
})
136+
.catch((err) => reject(err));
147137
}
148138

149139
listFaxes(options = {
@@ -156,32 +146,27 @@ module.exports = class {
156146
per_page: null,
157147
page: null,
158148
}) {
159-
return new Promise((resolve, reject) => {
160-
const query = {};
161-
Object.keys(options).forEach((rec) => {
162-
if (rec === 'tags' && typeof options[rec] === 'object' && options[rec] !== null) {
163-
Object.keys(options[rec]).forEach((tag) => {
164-
const newrec = `tag[${tag}]`;
165-
query[newrec] = options[rec][tag];
166-
});
167-
} else if (options[rec] !== null) {
168-
query[rec] = options[rec];
169-
}
170-
});
149+
const query = {};
150+
Object.keys(options).forEach((rec) => {
151+
if (rec === 'tags' && typeof options[rec] === 'object' && options[rec] !== null) {
152+
Object.keys(options[rec]).forEach((tag) => {
153+
const newrec = `tag[${tag}]`;
154+
query[newrec] = options[rec][tag];
155+
});
156+
} else if (options[rec] !== null) {
157+
query[rec] = options[rec];
158+
}
159+
});
171160

172-
request({
173-
method: 'GET',
174-
url: `${this.url}/faxes`,
175-
auth: this.auth,
176-
qs: query,
177-
agentOptions: this.agentOptions,
161+
return request
162+
.get(`${this.url}/faxes`, query, {
163+
auth: auth
178164
})
179-
.then((response) => {
180-
const res = JSON.parse(response);
181-
if (!res.success) return reject(errorHandler(res.message));
182-
return resolve(res);
183-
})
184-
.catch((err) => reject(err));
185-
});
165+
.then((response) => {
166+
const res = JSON.parse(response);
167+
if (!res.success) return reject(errorHandler(res.message));
168+
return resolve(res);
169+
})
170+
.catch((err) => reject(err));
186171
}
187172
};

src/faxes/shared-methods.js

Lines changed: 60 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,89 @@
1-
const request = require('request-promise-native');
1+
const request = require('axios');
22
const errorHandler = require('../error-handler');
33

44
function cancel(url, id, auth, agentOptions) {
5-
return new Promise((resolve, reject) => {
6-
request({
7-
method: 'POST',
8-
url: `${url}/faxes/${id}/cancel`,
9-
auth,
10-
agentOptions,
5+
return request
6+
.post(`${url}/faxes/${id}/cancel`, {
7+
auth: auth
118
})
12-
.then((response) => {
13-
const res = JSON.parse(response);
14-
if (!res.success) return reject(errorHandler(res.message));
15-
return resolve(res);
16-
})
17-
.catch((err) => reject(err));
18-
});
9+
.then((response) => {
10+
const res = JSON.parse(response);
11+
if (!res.success) return reject(errorHandler(res.message));
12+
return resolve(res);
13+
})
14+
.catch((err) => reject(err));
1915
}
2016

2117
function resend(url, id, auth, options = { id: null, callback_url: null }, agentOptions) {
22-
return new Promise((resolve, reject) => {
23-
const { callback_url } = options; // eslint-disable-line camelcase
24-
25-
const req = {
26-
method: 'POST',
27-
url: `${url}/faxes/${id}/resend`,
28-
auth,
29-
callback_url,
30-
agentOptions,
31-
};
32-
33-
if (req.callback_url === null || req.callback_url === undefined) delete req.callback_url;
18+
const { callback_url } = options; // eslint-disable-line camelcase
3419

35-
request(req)
36-
.then((response) => {
37-
const res = JSON.parse(response);
38-
if (!res.success) return reject(errorHandler(res.message));
39-
return resolve(res);
40-
})
41-
.catch((err) => reject(err));
42-
});
20+
request
21+
.post(`${url}/faxes/${id}/resend`, {
22+
auth: auth,
23+
callback_url: callback_url
24+
})
25+
.then((response) => {
26+
const res = JSON.parse(response);
27+
if (!res.success) return reject(errorHandler(res.message));
28+
return resolve(res);
29+
})
30+
.catch((err) => reject(err));
4331
}
4432

4533
function testDelete(url, id, auth, agentOptions) {
46-
return new Promise((resolve, reject) => {
47-
request({
48-
method: 'DELETE',
49-
url: `${url}/faxes/${id}`,
50-
auth,
51-
agentOptions,
34+
return request
35+
.delete(`${url}/faxes/${id}`, {
36+
auth: auth
37+
})
38+
.then((response) => {
39+
const res = JSON.parse(response);
40+
if (!res.success) return reject(errorHandler(res.message));
41+
return resolve(res);
5242
})
53-
.then((response) => {
54-
const res = JSON.parse(response);
55-
if (!res.success) return reject(errorHandler(res.message));
56-
return resolve(res);
57-
})
58-
.catch((err) => reject(err));
59-
});
43+
.catch((err) => reject(err));
6044
}
6145

6246
function getInfo(url, id, auth, agentOptions) {
63-
return new Promise((resolve, reject) => {
64-
request({
65-
method: 'GET',
66-
url: `${url}/faxes/${id}`,
67-
auth,
68-
agentOptions,
47+
return request
48+
.get(`${url}/faxes/${id}`, {
49+
auth: auth
6950
})
70-
.then((response) => {
71-
const res = JSON.parse(response);
72-
if (!res.success) return reject(errorHandler(res.message));
73-
return resolve(res);
74-
})
75-
.catch((err) => reject(err));
76-
});
51+
.then((response) => {
52+
const res = JSON.parse(response);
53+
if (!res.success) return reject(errorHandler(res.message));
54+
return resolve(res);
55+
})
56+
.catch((err) => reject(err));
7757
}
7858

7959
function getFile(url, id, auth, options = { id: null, thumbnail: null }, agentOptions) {
80-
return new Promise((resolve, reject) => { // eslint-disable-line consistent-return
81-
const thumbnail = options.thumbnail === undefined ? null : options.thumbnail;
60+
const thumbnail = options.thumbnail === undefined ? null : options.thumbnail;
8261

83-
if (!['s', 'l', null].includes(thumbnail)) {
84-
return reject(new Error('ThumbnailSizeInvalid: Must be \'s\', \'l\', or null (default) for full file.'));
85-
}
62+
if (!['s', 'l', null].includes(thumbnail)) {
63+
return reject(new Error('ThumbnailSizeInvalid: Must be \'s\', \'l\', or null (default) for full file.'));
64+
}
8665

87-
const req = {
88-
method: 'GET',
89-
url: `${url}/faxes/${id}/file`,
90-
auth,
91-
agentOptions,
66+
return request
67+
.get(`${url}/faxes/${id}/file`, {
68+
auth: auth,
9269
encoding: null,
93-
};
94-
95-
if (thumbnail !== null) req.qs = { thumbnail };
96-
97-
request(req)
98-
.then((response) => resolve(response))
99-
.catch((err) => reject(err));
100-
});
70+
thumbnail: thumbnail
71+
})
72+
.then((response) => resolve(response))
73+
.catch((err) => reject(err));
10174
}
10275

10376
function deleteFile(url, id, auth, agentOptions) {
104-
return new Promise((resolve, reject) => {
105-
request({
106-
method: 'DELETE',
107-
url: `${url}/faxes/${id}/file`,
108-
auth,
109-
agentOptions,
77+
return request
78+
.delete(`${url}/faxes/${id}/file`, {
79+
auth: auth
80+
})
81+
.then((response) => {
82+
const res = JSON.parse(response);
83+
if (!res.success) return reject(errorHandler(res.message));
84+
return resolve(res);
11085
})
111-
.then((response) => {
112-
const res = JSON.parse(response);
113-
if (!res.success) return reject(errorHandler(res.message));
114-
return resolve(res);
115-
})
116-
.catch((err) => reject(err));
117-
});
86+
.catch((err) => reject(err));
11887
}
11988

12089
module.exports = {

0 commit comments

Comments
 (0)