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  }