From f96e6174fe90f3d2b1e3016861017cfcc25a6ddc Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 14 Nov 2020 23:11:06 +0300 Subject: feat: add APIClient --- src/requests.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/requests.ts (limited to 'src/requests.ts') diff --git a/src/requests.ts b/src/requests.ts new file mode 100644 index 0000000..368ae40 --- /dev/null +++ b/src/requests.ts @@ -0,0 +1,27 @@ +import axios from 'axios'; +import _ from 'lodash'; + +const baseURL = process.env.NODE_ENV === 'production' + ? 'https://bsu-fantom.herokuapp.com' + : 'http://localhost:3030'; + +const requests = axios.create({ baseURL }); + +requests.interceptors.request.use(config => { + const token = localStorage.getItem('token'); + return _.set(config, 'headers.Authorization', token); +}); + +requests.interceptors.response.use(response => response, error => { + if (error.message === 'Request failed with status code 401' && localStorage.getItem('token')) { + localStorage.removeItem('remember'); + window.location.reload(); + } + return Promise.reject(error); +}); + +export const { + get, post, put, patch +} = requests; +export default requests; + -- cgit v1.2.3