| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import axios from 'axios';
- import queryString from 'qs';
-
- const request = axios.create({
- baseURL: process.env.REACT_APP_BASE_API_URL,
- headers: {
- 'Content-Type': 'application/json',
- },
- paramsSerializer: (params) =>
- queryString.stringify(params, { arrayFormat: 'comma' }),
- });
-
- export const getRequest = (url, params = null, options = null) =>
- request.get(url, { params, ...options });
-
- export const postRequest = (url, data, params = null, options = null) =>
- request.post(url, data, { params, ...options });
-
- export const putRequest = (url, data, params = null, options = null) =>
- request.put(url, data, { params, ...options });
-
- export const patchRequest = (url, data, params = null, options = null) =>
- request.patch(url, data, { params, ...options });
-
- export const deleteRequest = (url, params = null, options = null) =>
- request.delete(url, { params, ...options });
-
- export const downloadRequest = (url, params = null, options = null) =>
- request.get(url, { params, ...options, responseType: 'blob' });
-
- export const replaceInUrl = (url, pathVariables = {}) => {
- const keys = Object.keys(pathVariables);
- if (!keys.length) {
- return url;
- }
-
- return keys.reduce(
- (acc, key) => acc.replace(`{${key}}`, pathVariables[`${key}`]),
- url,
- );
- };
-
- export const addHeaderToken = (token) => {
- request.defaults.headers.Authorization = `Bearer ${token}`;
- };
-
- export const addHeaderCookie = (key, value) => {
- request.defaults.headers[`${key}`] = value;
- };
-
- export const removeHeaderToken = () => {
- delete request.defaults.headers.Authorization;
- };
-
- export const attachPostRequestListener = (postRequestListener) => {
- request.interceptors.response.use(
- (response) => response,
- (response) => postRequestListener(response),
- );
- };
-
- export const apiDefaultUrl = request.defaults.baseURL;
|