-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
68 lines (68 loc) · 2.36 KB
/
Copy pathindex.js
File metadata and controls
68 lines (68 loc) · 2.36 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
"use strict";
var Q = require("q");
var XHRequest = (function () {
function XHRequest(baseUrl, accessToken) {
this.baseUrl = baseUrl || '';
this.accessToken = accessToken || '';
}
XHRequest.prototype.exampleRequest = function () {
var requestData = { type: 'GET', uri: '/examples/4' };
return this.request(requestData);
};
XHRequest.prototype.setAccessToken = function (accessToken) {
this.accessToken = accessToken || '';
};
XHRequest.prototype.setBaseUrl = function (baseUrl) {
this.baseUrl = baseUrl || '';
};
XHRequest.prototype.request = function (requestData) {
var req = new XMLHttpRequest();
var type = requestData.type || 'GET';
req.open(type, this.buildUrl(requestData.uri, requestData.queryString));
if (this.accessToken) {
req.setRequestHeader('Authorization', 'Bearer ' + this.accessToken);
}
var defer = Q.defer();
req.onreadystatechange = function () {
if (req.readyState === 4) {
var data = null;
try {
data = req.responseText ? JSON.parse(req.responseText) : '';
}
catch (e) {
defer.reject({ data: e, status: req.status });
}
if (req.status >= 200 && req.status < 300) {
defer.resolve({ data: data, status: req.status });
}
else {
defer.reject({ data: '', status: req.status });
}
}
};
if (type === 'GET') {
req.send(null);
}
else {
req.send(requestData.payload ? JSON.stringify(requestData.payload) : null);
}
return defer.promise;
};
XHRequest.prototype.buildUrl = function (uri, parameters) {
var qs = '';
for (var key in parameters) {
if (parameters.hasOwnProperty(key)) {
var value = parameters[key];
qs += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
}
}
if (qs.length > 0) {
qs = qs.substring(0, qs.length - 1);
uri = uri + '?' + qs;
}
return this.baseUrl + uri;
};
return XHRequest;
}());
exports.XHRequest = XHRequest;
//# sourceMappingURL=index.js.map