forked from GuillermoAlexis/qa11y-dashboard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient.js
127 lines (99 loc) · 2.26 KB
/
client.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
115
116
117
118
119
120
121
122
123
124
125
126
127
'use strict';
var request = require('request');
module.exports = client;
// Create a web-service client
function client (root) {
return {
users: {
// Create a new user
create: function (user, done) {
post(root + 'users', user, done);
},
// Get all users
get: function (query, done) {
get(root + 'users', query, done);
}
},
tasks: {
// Create a new task
create: function (task, done) {
post(root + 'tasks', task, done);
},
// Get all tasks
get: function (query, done) {
get(root + 'tasks', query, done);
},
// Get results for all tasks
results: function (query, done) {
get(root + 'tasks/results', query, done);
}
},
task: function (id) {
return {
// Get a task
get: function (query, done) {
get(root + 'tasks/' + id, query, done);
},
// Edit a task
edit: function (edits, done) {
patch(root + 'tasks/' + id, edits, done);
},
// Remove a task
remove: function (done) {
del(root + 'tasks/' + id, null, done);
},
// Run a task
run: function (done) {
post(root + 'tasks/' + id + '/run', null, done);
},
// Get results for a task
results: function (query, done) {
get(root + 'tasks/' + id + '/results', query, done);
},
result: function (rid) {
return {
// Get a result
get: function (query, done) {
get(root + 'tasks/' + id + '/results/' + rid, query, done);
}
};
}
};
}
};
}
// Perform a DELETE request
function del (url, query, done) {
req('DELETE', url, query, null, done);
}
// Perform a GET request
function get (url, query, done) {
req('GET', url, query, null, done);
}
// Perform a PATCH request
function patch (url, body, done) {
req('PATCH', url, null, body, done);
}
// Perform a POST request
function post (url, body, done) {
req('POST', url, null, body, done);
}
// Perform a request
function req (method, url, query, body, done) {
request({
method: method,
url: url,
qs: query,
body: body,
json: true
}, function (err, res, body) {
if (err) {
return done(err);
}
if (res.statusCode > 299) {
var message = (body && body.message ? body.message : 'Error ' + res.statusCode);
return done(new Error(message));
}
done(null, body);
});
}