laravel-jstools
Version:
JS tools for building front-side of Laravel applications
72 lines (71 loc) • 3.49 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AxiosService = void 0;
const axios_1 = require("axios");
const laravel_jstools_di_1 = require("laravel-jstools-di");
const JSToolsAbstractMap_1 = require("../../app/JSToolsAbstractMap");
const ContextTypeEnum_1 = require("../../types/ContextTypeEnum");
class AxiosService extends laravel_jstools_di_1.Service {
constructor() {
super(...arguments);
this.serviceDependsList = [JSToolsAbstractMap_1.JSToolsAbstractMap.NotyServiceContract];
}
send(config, callbackList, showNoty = true, form) {
return __awaiter(this, void 0, void 0, function* () {
const notyService = this.getService(JSToolsAbstractMap_1.JSToolsAbstractMap.NotyServiceContract);
if (typeof callbackList.start === 'function') {
callbackList.start();
}
try {
const { data } = yield axios_1.default.request(config);
if (typeof callbackList.finish === 'function') {
callbackList.finish();
}
if (data.status === true) {
if (typeof callbackList.success === 'function') {
callbackList.success(data.result);
}
if (showNoty && data.noty) {
notyService.show({
context: data.noty.context || ContextTypeEnum_1.ContextTypeEnum.success,
message: data.noty.message,
});
}
}
else {
if (showNoty && data.noty) {
notyService.show({
context: data.noty.context || ContextTypeEnum_1.ContextTypeEnum.danger,
message: data.noty.message,
});
}
}
return { result: true, data };
}
catch (error) {
if (typeof callbackList.finish === 'function') {
callbackList.finish();
}
if (error.response.status === 422) {
if (typeof callbackList.error === 'function') {
callbackList.error(error.response.data.errors);
}
error.response.data.status = false;
return { result: false, data: error.response.data };
}
console.log('AxiosService:: unexpected error', error);
return { result: false, data: error.message };
}
});
}
}
exports.AxiosService = AxiosService;