-
Notifications
You must be signed in to change notification settings - Fork 1
/
http-wrapper.js
77 lines (68 loc) · 1.84 KB
/
http-wrapper.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
let request = require('request');
let fs = require('fs');
class HttpWrapper {
makeGetRequest(url, options) {
return new Promise((resolve, reject) => {
request(url, options, (error, response) => {
if (!error && response.statusCode == 200) {
resolve(response);
}
reject(error);
})
});
}
makePostRequest(url, body, contentType) {
return new Promise((resolve, reject) => {
request.post({url: url, headers: {'User-Agent': 'request', 'Content-Type': contentType}, body: body}, (error, response) => {
if (error) {
reject(error);
}
resolve(response);
});
});
}
makePatchRequest(url, body) {
return new Promise((resolve, reject) => {
request.patch({url: url, headers: {'User-Agent': 'request'}, body: body}, (error, response) => {
if (error) {
reject(error);
}
resolve(response);
});
});
}
makeDeleteRequest(url) {
return new Promise((resolve, reject) => {
request.delete({url: url, headers: {'User-Agent': 'request'}}, (error, response) => {
if (error) {
reject(error);
}
resolve(response);
});
});
}
makeFileUploadRequest(file, url) {
return new Promise((resolve, reject) => {
const stats = fs.statSync(file);
fs.createReadStream(file).pipe(request.post(
{
url: url,
json: true,
headers: {
'User-Agent': 'Release-Agent',
'Accept': 'application/vnd.github.v3+json',
'Content-Length': stats.size,
'Content-Type': 'application/gzip'
}
},
(error, response) => {
if (error) {
reject(error);
}
resolve(response)
}
));
});
}
}
module.exports = HttpWrapper;