Skip to content
Snippets Groups Projects
Commit decad3ad authored by michael.minelli's avatar michael.minelli
Browse files

Add axios interceptors

parent 4f251508
Branches
Tags
No related merge requests found
import axios, { AxiosRequestHeaders } from 'axios';
import Config from '../Config/Config';
import SessionManager from './SessionManager';
import FormData from 'form-data';
class HttpManager {
private static _instance: HttpManager;
public static get instance(): HttpManager {
if ( !HttpManager._instance ) {
HttpManager._instance = new HttpManager();
}
return HttpManager._instance;
}
registerAxiosInterceptor() {
this.registerRequestInterceptor();
this.registerResponseInterceptor();
}
private registerRequestInterceptor() {
axios.interceptors.request.use((config) => {
if ( config.data instanceof FormData ) {
config.headers = { ...config.headers, ...(config.data as FormData).getHeaders() } as AxiosRequestHeaders;
}
if ( SessionManager.isLogged && config.url && config.url.indexOf(Config.apiURL) !== -1 ) {
config.headers.Authorization = 'BEARER ' + SessionManager.token;
}
return config;
});
}
private registerResponseInterceptor() {
axios.interceptors.response.use((response) => {
if ( response.data && response.data.token ) {
SessionManager.token = response.data.token;
}
return response;
}, (error) => {
if ( error.response.status === 401 ) {
}
});
}
}
export default HttpManager.instance;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment