-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUtils.js
More file actions
92 lines (84 loc) · 1.85 KB
/
Copy pathUtils.js
File metadata and controls
92 lines (84 loc) · 1.85 KB
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
/**
* Created by fisher at 5:59 PM on 1/23/17.
*/
'use strict';
let fetch;
if ('undefined' === typeof window) {
fetch = require('node-fetch');
} else {
require('whatwg-fetch');
}
/**
* Transfer JSON text to object.
*
* @param response{String} JSON string.
* @return {Object} Transferred Object.
*/
const toJSON = (response) => response.json();
/**
* Set up a json request.
*
* @param url{String} Requested URL.
* @param method{String} Request method.
* @param data{Object} Data to be send.
* @returns {Promise.<JSON>} JSON response.
*/
const doRequest = (url, method, data) => {
let options = {
method: method,
credentials: 'include',
};
if (data) {
options.headers = {'Content-Type': 'application/json'};
options.body = JSON.stringify(data);
}
return fetch(url, options).then(toJSON);
};
/**
* Do simple GET request.
*
* @param url Requested URL.
* @returns {Promise.<JSON>} JSON response.
*/
exports.doGET = (url) => {
return doRequest(url, 'GET', null);
};
/**
* Simple POST request.
*
* @param path{String} Requested URL.
* @param data{JSON} Data to be send.
* @returns {Promise.<JSON>} JSON response.
*/
exports.doPOST = (path, data) => {
return doRequest(path, 'POST', data);
};
/**
* Simple PUT request.
*
* @param path{String} Requested URL.
* @param data{JSON} Data to be send.
* @returns {Promise.<JSON>} JSON response.
*/
exports.doPUT = (path, data) => {
return doRequest(path, 'PUT', data);
};
/**
* Simple PATCH request.
*
* @param path{String} Requested URL.
* @param data{JSON} Data to be send.
* @returns {Promise.<JSON>} JSON response.
*/
exports.doPATCH = (path, data) => {
return doRequest(path, 'PATCH', data);
};
/**
* Simple DELETE request.
*
* @param path{String} Requested URL.
* @returns {Promise.<JSON>} JSON response.
*/
exports.doDELETE = (path) => {
return doRequest(path, 'DELETE', null);
};