hof 19.13.4-betav7 → 19.13.4-betav8
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/model/index.js +30 -66
- package/package.json +1 -1
package/model/index.js
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
'use strict';
|
3
3
|
|
4
4
|
const _ = require('lodash');
|
5
|
+
const requestJS = require('request');
|
5
6
|
const url = require('url');
|
6
7
|
const EventEmitter = require('events').EventEmitter;
|
7
8
|
|
@@ -16,58 +17,36 @@ function timeDiff(from, to, d) {
|
|
16
17
|
return +ms.toFixed(digits);
|
17
18
|
}
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
function fetchRequest(settings, callback) {
|
21
|
+
if(!!settings.isUpload ||
|
22
|
+
(settings.formData && settings.formData.document && settings.formData.document.options && settings.formData.document.options.filename)
|
23
|
+
) {
|
24
|
+
//We're currently continuing to use requestJS for uploads as the Node Fetch API doesn't work with Multer
|
25
|
+
//TODO: Remove this once Fetch is compatible with Multer
|
26
|
+
//We can either pass in the isUpload flag or we'll assume it's an upload since we've passed a document with options and a filename
|
27
|
+
requestJS(settings, (err, response) => {
|
28
|
+
callback(err,response);
|
29
|
+
});
|
28
30
|
} else {
|
29
|
-
|
31
|
+
//Fetch doesn't like undefined headers
|
32
|
+
settings.headers = settings.headers || [];
|
33
|
+
settings.uri = settings.uri || settings.url || url.format(settings);
|
34
|
+
let response;
|
35
|
+
console.log(settings);
|
36
|
+
fetch(settings.uri, settings).then((_response) => {
|
37
|
+
response = _response;
|
38
|
+
})
|
39
|
+
.then(() => response.text())
|
40
|
+
.then((responseText) => {
|
41
|
+
var result = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
|
42
|
+
if(response.ok) {
|
43
|
+
callback(null,result);
|
44
|
+
} else {
|
45
|
+
callback({ status: response.status, code: response.status, message: response.statusText }, result);
|
46
|
+
}
|
47
|
+
});
|
30
48
|
}
|
31
49
|
}
|
32
|
-
*/
|
33
|
-
|
34
|
-
/*
|
35
|
-
function fetchRequest(settings, callback) {
|
36
|
-
//Fetch doesn't like undefined headers
|
37
|
-
settings.headers = settings.headers || [];
|
38
|
-
settings.uri = settings.uri || settings.url || url.format(settings);
|
39
|
-
fetch(settings.uri, settings).then(async function(response) {
|
40
|
-
var responseText = await response.text();
|
41
|
-
var responseObj = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
|
42
|
-
if(response.ok) {
|
43
|
-
callback(null,responseObj);
|
44
|
-
} else {
|
45
|
-
callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
|
46
|
-
//callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
|
47
|
-
}
|
48
|
-
//return { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
|
49
|
-
})
|
50
|
-
*/
|
51
|
-
|
52
|
-
function fetchRequest(settings, callback) {
|
53
|
-
//Fetch doesn't like undefined headers
|
54
|
-
settings.headers = settings.headers || [];
|
55
|
-
settings.uri = settings.uri || settings.url || url.format(settings);
|
56
|
-
let response;
|
57
|
-
console.log(settings);
|
58
|
-
fetch(settings.uri, settings).then((gottenResponse) => {
|
59
|
-
response = gottenResponse;
|
60
|
-
})
|
61
|
-
.then(() => response.text())
|
62
|
-
.then((responseText) => {
|
63
|
-
var result = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
|
64
|
-
if(response.ok) {
|
65
|
-
callback(null,result);
|
66
|
-
} else {
|
67
|
-
callback({ status: response.status, code: response.status, message: response.statusText }, result);
|
68
|
-
}
|
69
|
-
});
|
70
|
-
}
|
71
50
|
|
72
51
|
const urlKeys = Object.keys(url.parse(''));
|
73
52
|
|
@@ -139,21 +118,6 @@ module.exports = class Model extends EventEmitter {
|
|
139
118
|
}
|
140
119
|
|
141
120
|
request(originalSettings, body, callback) {
|
142
|
-
/*
|
143
|
-
async function fetchRequest(settings, callback) {
|
144
|
-
//Fetch doesn't like undefined headers
|
145
|
-
settings.headers = settings.headers || [];
|
146
|
-
var response = await fetch(settings.uri, settings);
|
147
|
-
var responseText = await response.text();
|
148
|
-
var responseObj = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
|
149
|
-
if(response.ok) {
|
150
|
-
callback(null,responseObj);
|
151
|
-
} else {
|
152
|
-
callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
|
153
|
-
}
|
154
|
-
}
|
155
|
-
*/
|
156
|
-
|
157
121
|
if (typeof body === 'function' && arguments.length === 2) {
|
158
122
|
callback = body;
|
159
123
|
body = undefined;
|
@@ -206,11 +170,11 @@ module.exports = class Model extends EventEmitter {
|
|
206
170
|
|
207
171
|
fetchRequest(settings, (err, response) => {
|
208
172
|
if (err) {
|
209
|
-
if (err.status === 408) {
|
173
|
+
if (err.status === 408 || err.code === 'ETIMEDOUT' || err.code === 'ESOCKETTIMEDOUT') {
|
210
174
|
err.message = 'Connection timed out';
|
211
175
|
err.status = 504;
|
212
176
|
}
|
213
|
-
err.status = err.status || (response && response.status) || 503;
|
177
|
+
err.status = err.status || err.statusCode || (response && response.status) || 503;
|
214
178
|
return _callback(err, null, err.status);
|
215
179
|
}
|
216
180
|
return this.handleResponse(response, (error, data, status) => {
|