github.com/minio/console@v1.4.1/web-app/src/api/index.ts (about) 1 import { Api, HttpResponse, FullRequestParams, ApiError } from "./consoleApi"; 2 3 export let api = new Api(); 4 api.baseUrl = `${new URL(document.baseURI).pathname}api/v1`; 5 const internalRequestFunc = api.request; 6 api.request = async <T = any, E = any>({ 7 body, 8 secure, 9 path, 10 type, 11 query, 12 format, 13 baseUrl, 14 cancelToken, 15 ...params 16 }: FullRequestParams): Promise<HttpResponse<T, E>> => { 17 const internalResp = internalRequestFunc({ 18 body, 19 secure, 20 path, 21 type, 22 query, 23 format, 24 baseUrl, 25 cancelToken, 26 ...params, 27 }); 28 return internalResp.then((e) => CommonAPIValidation(e)); 29 }; 30 31 export function CommonAPIValidation<D, E>( 32 res: HttpResponse<D, E>, 33 ): HttpResponse<D, E> { 34 const err = res.error as ApiError; 35 if (err && res.status === 403 && err.message === "invalid session") { 36 if (window.location.pathname !== "/login") { 37 document.location = "/login"; 38 } 39 } 40 return res; 41 }