Files
old-svijetlastrana-front/src/components/Connection/index.js
2018-05-07 16:07:00 +02:00

87 lines
2.0 KiB
JavaScript

/* global document, window */
const axios = require('axios');
const Instance = () => {
const apiUrl = process.env.NODE_ENV === 'production'
? 'https://portal-api.bcbsinstitute.com'
: 'https://portal-api.dev.bcbsinstitute.com';
window.localStorage.setItem('App', '8a266a40-ed2e-4be2-bdfc-459a507bf02e');
let instance = axios.create({
baseURL: apiUrl,
timeout: 60000,
headers: { App: window.localStorage.getItem('App') },
});
const setCookie = (cname, cvalue, date) => {
const d = new Date(date * 1000);
const expires = `expires=${d.toUTCString()}`;
document.cookie = `${cname}=${cvalue};${expires};path=/`;
};
const getCookie = (cname) => {
const name = `${cname}=`;
const decodedCookie = decodeURIComponent(document.cookie);
const ca = decodedCookie.split(';');
for (let i = 0; i < ca.length; i += 1) {
let c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1);
}
if (c.indexOf(name) === 0) {
return c.substring(name.length, c.length);
}
}
return '';
};
const setToken = (token) => {
if (token && token !== null) {
instance = axios.create({
baseURL: apiUrl,
timeout: 60000,
headers: { App: window.localStorage.getItem('App'), Token: `Bearer ${token}` },
});
} else {
instance = axios.create({
baseURL: apiUrl,
timeout: 60000,
headers: { App: window.localStorage.getItem('App') },
});
}
return instance;
};
const getConnection = () => {
const token = getCookie('token');
return setToken(token);
};
const getRawConn = () => {
const token = getCookie('token');
if (token && token !== null && token !== '') {
return instance;
}
window.location.href = '/#/login';
return null;
};
const token = getCookie('token');
instance = setToken(token);
return {
getCookie,
setCookie,
getConnection,
setToken,
getRawConn,
};
};
export default Instance();