@cargochain/sdk-js
Version:
The CargoChain platform allows application developers to build supply chain solutions that enable the secure distribution of cargo information among trusted partners.
61 lines (55 loc) • 1.94 kB
JavaScript
const request = require('superagent');
const Fetcher = {
get: function (url, data, accessToken) {
const headers = accessToken ? { 'Authorization': 'Bearer ' + accessToken } : {};
return Fetcher._getRequestBuilder()
.get(url)
.withCredentials()
.query(data)
.set(headers)
.then(res => Fetcher._onSuccess(res))
.catch(err => Fetcher._onError(err));
},
post: function (url, data, accessToken) {
const headers = accessToken ? { 'Authorization': 'Bearer ' + accessToken } : {};
return Fetcher._getRequestBuilder()
.post(url)
.withCredentials()
.send(data)
.set(headers)
.then(res => Fetcher._onSuccess(res))
.catch(err => Fetcher._onError(err));
},
_getRequestBuilder() {
return request;
},
_onSuccess: function (response) {
return {
isSuccess: true,
message: null,
statusCode: response.statusCode,
data: response.body
};
},
_onError: function (error) {
if (error.response) {
console.warn(`API warning \n\t> ${error.response.req.method}: ${error.response.req.path} \n\t> Status Code: ${error.status}\n\t> ${error.message}\n\t> Dedicace: @smarty`);
return {
isSuccess: false,
message: error.message,
statusCode: error.status,
data: null
};
} else {
const errorMessage = 'Cannot reach API server ' + error.url;
console.error(errorMessage);
return {
isSuccess: false,
message: errorMessage,
statusCode: 500,
data: null
};
}
}
}
module.exports = Fetcher;