UNPKG

@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
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;