@selfcommunity/api-services
Version:
Client api for SelfCommunity.
82 lines (81 loc) • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCancelTokenSourceRequest = exports.formatHttpErrorCode = exports.formatHttpError = exports.defaultError = void 0;
const tslib_1 = require("tslib");
const utils_1 = require("@selfcommunity/utils");
const axios_1 = tslib_1.__importDefault(require("axios"));
function defaultError(error) {
if (error.request) {
// The request was made but no response was received
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
// http.ClientRequest in node.js
console.log(error.request);
}
else {
// Something happened in setting up the request that triggered an Error
console.log('Error', error.message);
}
}
exports.defaultError = defaultError;
const formatError = (error) => {
const errors = {};
if (Array.isArray(error)) {
for (let i = 0; i < error.length; i++) {
const err = error[i];
if (err.field) {
errors[`${(0, utils_1.camelCase)(err.field)}Error`] = Array.isArray(err.messages) ? formatError(err.messages) : err.messages;
}
else {
errors.error = err.message;
}
}
}
else {
errors.error = error.errors;
}
return errors;
};
function formatHttpError(error) {
let errors = {};
if (error.response && error.response.data && typeof error.response.data === 'object' && error.response.data.errors) {
errors = Object.assign({}, formatError(error.response.data.errors));
}
else {
defaultError(error);
}
return errors;
}
exports.formatHttpError = formatHttpError;
const formatErrorCode = (error) => {
const errors = {};
if (Array.isArray(error)) {
for (let i = 0; i < error.length; i++) {
const err = error[i];
if (err.field) {
errors[`${(0, utils_1.camelCase)(err.field)}Error`] = Array.isArray(err.messages) ? formatErrorCode(err.messages) : err.messages;
}
else {
errors.error = err.code;
}
}
}
else {
errors.error = error.errors;
}
return errors;
};
function formatHttpErrorCode(error) {
let errors = {};
if (error.response && error.response.data && typeof error.response.data === 'object' && error.response.data.errors) {
errors = Object.assign({}, formatErrorCode(error.response.data.errors));
}
else {
defaultError(error);
}
return errors;
}
exports.formatHttpErrorCode = formatHttpErrorCode;
function getCancelTokenSourceRequest() {
return axios_1.default.CancelToken.source();
}
exports.getCancelTokenSourceRequest = getCancelTokenSourceRequest;