request.js 1014 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import axiosAPI from "./axios";
  2. import { refreshToken } from "@/actions/auth";
  3. const handleRequest = async (request) => {
  4. try {
  5. return await request();
  6. } catch (error) {
  7. if (error?.response?.status === 401) {
  8. try {
  9. const token = await refreshToken();
  10. if (token.success) {
  11. axiosAPI.defaults.headers.Authorization = `Bearer ${token.access_token}`;
  12. return await request();
  13. }
  14. return false;
  15. } catch (error) {
  16. console.log(error);
  17. return false;
  18. }
  19. }
  20. console.log(error);
  21. return false;
  22. }
  23. };
  24. export const get = async (url, config = null) => {
  25. try {
  26. const request = () => axiosAPI.get(url, config);
  27. const res = await handleRequest(request);
  28. return res;
  29. } catch (error) {
  30. console.log(error);
  31. return false;
  32. }
  33. };
  34. export const post = async (url, data, config = null) => {
  35. try {
  36. const request = () => axiosAPI.post(url, data, config);
  37. const res = await handleRequest(request);
  38. return res;
  39. } catch (error) {
  40. console.log(error);
  41. return false;
  42. }
  43. };