220 lines
7.3 KiB
TypeScript
220 lines
7.3 KiB
TypeScript
|
|
||
|
// Rest API to connect to server
|
||
|
|
||
|
class ServiceRest {
|
||
|
request: any;
|
||
|
constructor() {
|
||
|
this.request = new XMLHttpRequest();
|
||
|
}
|
||
|
encodeQueryData(data) {
|
||
|
return Object.keys(data).map(function(key) {
|
||
|
return [key, data[key]].map(encodeURIComponent).join("=");
|
||
|
}).join("&");
|
||
|
};
|
||
|
|
||
|
get({url = '', params = {}, callback = (data) => {}, apiUrl = '', callbackErr = () => {}}) {
|
||
|
const querystring = '?' + this.encodeQueryData(params);
|
||
|
const fullURL = apiUrl + url + querystring;
|
||
|
const request = new XMLHttpRequest();
|
||
|
request.open("GET", fullURL, true);
|
||
|
request.timeout = 15000;
|
||
|
request.setRequestHeader("Content-Type","application/json;charset=UTF-8");
|
||
|
request.onreadystatechange = function () {
|
||
|
if (request.readyState == 4) {
|
||
|
//get status text
|
||
|
if (callback) {
|
||
|
if (request.responseText) {
|
||
|
callback(JSON.parse(request.responseText));
|
||
|
} else {
|
||
|
callbackErr();
|
||
|
}
|
||
|
}
|
||
|
} else if (request.readyState === 0) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
if (request.status !== 200) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
};
|
||
|
request.ontimeout = function (e) {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.onerror = (e) => {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.send();
|
||
|
};
|
||
|
|
||
|
getWithHeader({url = '', params = {}, headers = {}, callback = (data) => {}, apiUrl = '', callbackErr = () => {}}) {
|
||
|
const querystring = '?' + this.encodeQueryData(params);
|
||
|
const fullURL = apiUrl + url + querystring;
|
||
|
const request = new XMLHttpRequest();
|
||
|
request.open("GET", fullURL, true);
|
||
|
request.timeout = 15000;
|
||
|
request.setRequestHeader("Content-Type","application/json;charset=UTF-8");
|
||
|
|
||
|
Object.keys(headers).forEach( (key) => {
|
||
|
request.setRequestHeader(key, headers[key]);
|
||
|
});
|
||
|
|
||
|
request.onreadystatechange = function () {
|
||
|
if (request.readyState == 4) {
|
||
|
//get status text
|
||
|
if (callback) {
|
||
|
if (request.responseText) {
|
||
|
callback(JSON.parse(request.responseText));
|
||
|
} else {
|
||
|
callbackErr();
|
||
|
}
|
||
|
}
|
||
|
} else if (request.readyState === 0) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
if (request.status !== 200) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
};
|
||
|
request.ontimeout = function () {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.onerror = () => {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.send();
|
||
|
};
|
||
|
|
||
|
post({url = '', data = {}, callback = (data) => {}, apiUrl = '', callbackErr = () => {}}) {
|
||
|
const dataPost = this.encodeQueryData(data);
|
||
|
const fullURL = apiUrl + url;
|
||
|
const request = new XMLHttpRequest();
|
||
|
request.open('POST', fullURL, true);
|
||
|
request.timeout = 15000;
|
||
|
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
||
|
request.onreadystatechange = function() {
|
||
|
if(request.readyState == 4) {
|
||
|
if (request.responseText) {
|
||
|
callback({
|
||
|
status: request.status,
|
||
|
data: JSON.parse(request.responseText)
|
||
|
});
|
||
|
} else {
|
||
|
callbackErr();
|
||
|
}
|
||
|
} else if (request.readyState === 0) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
if (request.status !== 200) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
};
|
||
|
request.ontimeout = function (e) {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.onerror = (e) => {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.send(dataPost);
|
||
|
};
|
||
|
|
||
|
postWithHeader ({url = '',params = {}, headers = {}, data = {}, callback = (data) => {}, apiUrl = '', callbackErr = () => {}}) {
|
||
|
const dataPost = JSON.stringify(data);
|
||
|
const querystring = '?' + this.encodeQueryData(params);
|
||
|
const fullURL = apiUrl + url + querystring;
|
||
|
const request = new XMLHttpRequest();
|
||
|
request.open('POST', fullURL, true);
|
||
|
request.timeout = 15000;
|
||
|
request.setRequestHeader('Content-type', 'application/json');
|
||
|
|
||
|
Object.keys(headers).forEach( (key) => {
|
||
|
request.setRequestHeader(key, headers[key]);
|
||
|
});
|
||
|
|
||
|
request.onreadystatechange = function() {
|
||
|
if(request.readyState == 4) {
|
||
|
if (request.responseText) {
|
||
|
callback({
|
||
|
status: request.status,
|
||
|
data: JSON.parse(request.responseText)
|
||
|
});
|
||
|
} else {
|
||
|
callbackErr();
|
||
|
}
|
||
|
} else if (request.readyState === 0) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
if (request.status !== 200) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
};
|
||
|
request.ontimeout = function (e) {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.onerror = (e) => {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.send(dataPost);
|
||
|
};
|
||
|
|
||
|
postRaw({url = '', data = {}, callback = (data) => {}, apiUrl = '', callbackErr = () => {}}) {
|
||
|
const dataPost = data;
|
||
|
const fullURL = apiUrl + url;
|
||
|
const request = new XMLHttpRequest();
|
||
|
request.open('POST', fullURL, true);
|
||
|
request.timeout = 15000;
|
||
|
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
||
|
request.onreadystatechange = function() {
|
||
|
if(request.status == 200) {
|
||
|
callback({
|
||
|
status: request.status,
|
||
|
data: request.responseText
|
||
|
});
|
||
|
} else {
|
||
|
callbackErr();
|
||
|
}
|
||
|
};
|
||
|
request.ontimeout = function (e) {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.onerror = (e) => {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.send(dataPost);
|
||
|
};
|
||
|
|
||
|
put({url = '', data = {}, callback = (data) => {}, apiUrl = '', callbackErr = () => {}}) {
|
||
|
const dataPost = this.encodeQueryData(data);
|
||
|
const fullURL = apiUrl + url;
|
||
|
const request = new XMLHttpRequest();
|
||
|
request.open('PUT', fullURL, true);
|
||
|
request.timeout = 15000;
|
||
|
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
||
|
request.onreadystatechange = function() {
|
||
|
if(request.readyState == 4) {
|
||
|
if (request.responseText) {
|
||
|
callback({
|
||
|
status: request.status,
|
||
|
data: JSON.parse(request.responseText)
|
||
|
});
|
||
|
} else {
|
||
|
callbackErr();
|
||
|
}
|
||
|
} else if (request.readyState === 0) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
if (request.status !== 200) {
|
||
|
callbackErr();
|
||
|
}
|
||
|
};
|
||
|
request.ontimeout = function (e) {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.onerror = (e) => {
|
||
|
callbackErr();
|
||
|
};
|
||
|
request.send(dataPost);
|
||
|
};
|
||
|
};
|
||
|
|
||
|
const apiObject = new ServiceRest();
|
||
|
export default apiObject;
|