UNPKG

panjareh

Version:

Panjareh using aparat and phoenix-video-player to play videos on desktops and tvs.

57 lines (47 loc) 1.51 kB
import { AuthApi } from "../../api"; import Axios from "."; import { AuthStorage } from "../../utils/authStorage"; const refreshTokenHandler = async (error) => { const originalRequest = error.config; let accessToken = AuthStorage.getToken(); if (!accessToken) { return Promise.reject(error); } if (!originalRequest._retry) { originalRequest._retry = true; return AuthApi.refreshToken({ headers: { Authorization: `Bearer ${accessToken}` }, }).then((res) => { const { access_token } = res; if (access_token) { AuthStorage.setToken(access_token); originalRequest.headers["Authorization"] = `Bearer ${access_token}`; console.log("Access token refreshed!"); } return Axios(originalRequest); }); } else { return Promise.reject(error?.response?.data || error?.response); } }; const catchAxiosError = (error) => { const status = error?.response ? error?.response.status : null; if (error?.response) { if (status === 401) { return refreshTokenHandler(error); } if (status === 404) { // todo: rewire response for apis that not found return Promise.reject({ status: status, ...error?.response?.data }); } if (status === 500) { return null; } } else if (error.request) { return Promise.reject(error.message); } else { console.log("Error", error.message); } return Promise.reject(error?.response?.data || error?.response); }; export { catchAxiosError };