Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. import axios from 'axios';
  2. import history from './history';
  3.  
  4. export default (method, url, data = {}) => {
  5. const baseOptions = {
  6. headers: {
  7. 'Content-Type': 'application/json',
  8. Accept: 'application/vnd.goo.rent.v1+json',
  9. Authorization: `Bearer ${localStorage.getItem('access_token')}`,
  10. },
  11. responseType: 'json',
  12. crossdomain: true,
  13. url,
  14. method,
  15. data,
  16. };
  17.  
  18. const requestInterceptor = config => ({
  19. ...baseOptions,
  20. ...config,
  21. headers: { ...baseOptions.headers, ...config.headers },
  22. });
  23. const responseInterceptor = res => res;
  24. const handleRequestError = error => {
  25. const response1 = JSON.parse(JSON.stringify(error));
  26. const { response } = JSON.parse(JSON.stringify(error));
  27. if (response1.message === 'Request failed with status code 310') {
  28. return {
  29. error: 'Email or Password is not valid',
  30. };
  31. }
  32. if (response1.message === 'Request failed with status code 401') {
  33. return {
  34. error: 'Email or Password is not valid',
  35. };
  36. }
  37.  
  38. switch (true) {
  39. case response.data === undefined || response.data === null:
  40. return response;
  41. case response.status !== 422:
  42. return response;
  43. case response.data.message === undefined ||
  44. response.data.message === null:
  45. return response;
  46. case response.status === 310:
  47. history.push('/signout');
  48. return response;
  49. default:
  50. return response;
  51. }
  52. };
  53. const api = axios.create();
  54. api.interceptors.request.use(requestInterceptor, handleRequestError);
  55. api.interceptors.response.use(responseInterceptor, handleRequestError);
  56.  
  57. return Promise.resolve(true)
  58. .then(() => api({ ...baseOptions }))
  59. .then(response =>
  60. response.statusText === 'OK' ? response : Promise.reject(response),
  61. );
  62. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement