@bexis2/bexis2-core-ui
Version:
Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
58 lines (57 loc) • 1.97 kB
JavaScript
// Api.js
import axios from 'axios';
import { host, username, password, errorStore, csrfToken } from '../stores/apiStores';
console.log('setup axios');
// implement a method to execute all the request from here.
const apiRequest = (method, url, request) => {
// Create a instance of axios to use the same base url.
const axiosAPI = axios.create({
baseURL: host
});
const requestVerificationToken = csrfToken;
const headers = {
authorization: 'Basic ' + btoa(username + ':' + password),
'__RequestVerificationToken': requestVerificationToken
};
//using the axios instance to perform the request that received from each http method
return axiosAPI({
method,
url,
data: request,
headers
})
.then((res) => {
//console.log("res-test",res);
return Promise.resolve(res);
})
.catch((er) => {
//console.log("🚀 ~ apiRequest ~ err:", er)
const err = er.response;
let error = {
status: err.status,
statusText: err.statusText,
error: err.data.error,
stackTrace: err.data.stackTrace,
};
errorStore.set(error);
return Promise.reject(err);
});
};
// function to execute the http get request
const get = (url, request = '') => apiRequest('get', url, request);
// function to execute the http delete request
const deleteRequest = (url, request) => apiRequest('delete', url, request);
// function to execute the http post request
const post = (url, request) => apiRequest('post', url, request);
// function to execute the http put request
const put = (url, request) => apiRequest('put', url, request);
// function to execute the http path request
const patch = (url, request) => apiRequest('patch', url, request);
// expose your method to other services or actions
export const Api = {
get,
delete: deleteRequest,
post,
put,
patch
};