Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import axios from 'axios';
- import history from './history';
- export default (method, url, data = {}) => {
- const baseOptions = {
- headers: {
- 'Content-Type': 'application/json',
- Accept: 'application/vnd.goo.rent.v1+json',
- Authorization: `Bearer ${localStorage.getItem('access_token')}`,
- },
- responseType: 'json',
- crossdomain: true,
- url,
- method,
- data,
- };
- const requestInterceptor = config => ({
- ...baseOptions,
- ...config,
- headers: { ...baseOptions.headers, ...config.headers },
- });
- const responseInterceptor = res => res;
- const handleRequestError = error => {
- const response1 = JSON.parse(JSON.stringify(error));
- const { response } = JSON.parse(JSON.stringify(error));
- if (response1.message === 'Request failed with status code 310') {
- return {
- error: 'Email or Password is not valid',
- };
- }
- if (response1.message === 'Request failed with status code 401') {
- return {
- error: 'Email or Password is not valid',
- };
- }
- switch (true) {
- case response.data === undefined || response.data === null:
- return response;
- case response.status !== 422:
- return response;
- case response.data.message === undefined ||
- response.data.message === null:
- return response;
- case response.status === 310:
- history.push('/signout');
- return response;
- default:
- return response;
- }
- };
- const api = axios.create();
- api.interceptors.request.use(requestInterceptor, handleRequestError);
- api.interceptors.response.use(responseInterceptor, handleRequestError);
- return Promise.resolve(true)
- .then(() => api({ ...baseOptions }))
- .then(response =>
- response.statusText === 'OK' ? response : Promise.reject(response),
- );
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement