parent
71886fc333
commit
446c41a37a
@ -1,7 +0,0 @@ |
|||||||
export const checkStatus = (response: Response) => { |
|
||||||
if (!response.ok) { |
|
||||||
return Promise.reject(new Error(response.statusText)) |
|
||||||
} |
|
||||||
|
|
||||||
return Promise.resolve(response) |
|
||||||
} |
|
||||||
@ -1,4 +0,0 @@ |
|||||||
export const clearUserAuthInfo = () => { |
|
||||||
localStorage.removeItem('id_token') |
|
||||||
localStorage.removeItem('AuthUser') |
|
||||||
} |
|
||||||
@ -1,35 +0,0 @@ |
|||||||
import isString from 'lodash/isString' |
|
||||||
|
|
||||||
import { loadIdToken } from './loadIdToken' |
|
||||||
import { TRequestAbortController, TRequestConfig } from './types' |
|
||||||
|
|
||||||
export const getRequestConfig = ( |
|
||||||
config: TRequestConfig, |
|
||||||
abortController?: TRequestAbortController, |
|
||||||
) => { |
|
||||||
const requestConfig = { |
|
||||||
method: 'POST', |
|
||||||
...config, |
|
||||||
headers: new Headers(), |
|
||||||
} |
|
||||||
|
|
||||||
if (config.body && !isString(config.body)) { |
|
||||||
requestConfig.body = JSON.stringify(config.body) |
|
||||||
} |
|
||||||
|
|
||||||
if (config.body) { |
|
||||||
requestConfig.headers.set('Content-Type', 'application/json') |
|
||||||
} |
|
||||||
|
|
||||||
if (abortController) { |
|
||||||
requestConfig.signal = abortController.signal |
|
||||||
} |
|
||||||
|
|
||||||
const token = loadIdToken() |
|
||||||
|
|
||||||
if (token) { |
|
||||||
requestConfig.headers.set('x-auth-token', token) |
|
||||||
} |
|
||||||
|
|
||||||
return requestConfig |
|
||||||
} |
|
||||||
@ -1,3 +0,0 @@ |
|||||||
export const getResponseData = (proc: string) => (response: any) => ( |
|
||||||
response?.data?.[0]?.[proc] |
|
||||||
) |
|
||||||
@ -1,42 +0,0 @@ |
|||||||
import { TCallApi } from './types' |
|
||||||
import { parseJSON } from './parseJSON' |
|
||||||
import { checkStatus } from './checkStatus' |
|
||||||
import { removeCookie } from './removeCookie' |
|
||||||
import { clearUserAuthInfo } from './clearUserAuthInfo' |
|
||||||
import { getRequestConfig } from './getRequestConfig' |
|
||||||
|
|
||||||
export const callApi = ({ |
|
||||||
abortController, |
|
||||||
config, |
|
||||||
url, |
|
||||||
}: TCallApi) => { |
|
||||||
const requestConfig = getRequestConfig(config, abortController) |
|
||||||
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.log( |
|
||||||
'%c callApi from module - config ', |
|
||||||
'color: white; background-color: #95B46A', |
|
||||||
config, |
|
||||||
) |
|
||||||
|
|
||||||
return fetch(url, requestConfig) |
|
||||||
.then(checkStatus) |
|
||||||
.then(parseJSON) |
|
||||||
.catch((error) => { |
|
||||||
if (error.message === 'Unauthorized') { |
|
||||||
clearUserAuthInfo() |
|
||||||
removeCookie('token') |
|
||||||
|
|
||||||
if (window.location.pathname !== '/login') { |
|
||||||
localStorage.setItem('backLocation', window.location.pathname) |
|
||||||
window.location.pathname = '/login' |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.error(error) |
|
||||||
return Promise.reject(error) |
|
||||||
}) |
|
||||||
} |
|
||||||
|
|
||||||
export { getResponseData } from './getResponseData' |
|
||||||
@ -1 +0,0 @@ |
|||||||
export const loadIdToken = () => localStorage.getItem('id_token') |
|
||||||
@ -1 +0,0 @@ |
|||||||
export const parseJSON = (response: Response) => response.json() |
|
||||||
@ -1,11 +0,0 @@ |
|||||||
export const removeCookie = ( |
|
||||||
name: string, |
|
||||||
domain: string = '.instatscout.com', |
|
||||||
) => { |
|
||||||
document.cookie = ` |
|
||||||
${name}=; |
|
||||||
expires='Thu, 01 Jan 1970 00:00:00 UTC'; |
|
||||||
path=/; |
|
||||||
domain=${domain} |
|
||||||
` |
|
||||||
} |
|
||||||
@ -1,14 +0,0 @@ |
|||||||
export type TRequestConfig = { |
|
||||||
[key: string]: any, |
|
||||||
body?: any, |
|
||||||
headers?: Headers, |
|
||||||
signal?: any, |
|
||||||
} |
|
||||||
|
|
||||||
export type TRequestAbortController = AbortController | null |
|
||||||
|
|
||||||
export type TCallApi = { |
|
||||||
abortController?: TRequestAbortController, |
|
||||||
config: TRequestConfig, |
|
||||||
url: string, |
|
||||||
} |
|
||||||
@ -1 +1 @@ |
|||||||
export * from './callApi' |
export {} |
||||||
|
|||||||
Loading…
Reference in new issue