add response interceptors for refreshTokens method

This commit is contained in:
Dzmitry_Tamashevich@epam.com
2020-11-23 22:27:36 +03:00
committed by Daniel Hutzel
parent 76cbf7f9ca
commit 938abb6387
53 changed files with 4702 additions and 4513 deletions

View File

@@ -0,0 +1,5 @@
import EventEmitter from "events";
const emitter = new EventEmitter();
export { emitter };

View File

@@ -0,0 +1,8 @@
export const AVAILABLE_LOCALES = ["en", "fr", "de"];
export const MESSAGE_TIMEOUT = 2;
// in dev mode using provided api
// in prod mode using proxy
export const API =
process.env.NODE_ENV === "development" ? "http://localhost:4004/" : "api/";

View File

@@ -0,0 +1,35 @@
import { isValidUser } from "./validateUser";
import { AVAILABLE_LOCALES } from "./constants";
const setUserToLS = (user) => {
if (user) {
localStorage.setItem("user", JSON.stringify(user));
} else {
localStorage.removeItem("user");
}
};
const getUserFromLS = () => {
let userFromLS;
try {
userFromLS = JSON.parse(localStorage.getItem("user"));
if (isValidUser(userFromLS)) {
return userFromLS;
}
} catch (e) {}
};
const getLocaleFromLS = () => {
const localeFromLS = localStorage.getItem("locale");
return localeFromLS &&
localeFromLS !== "undefined" &&
AVAILABLE_LOCALES.includes(localeFromLS)
? localeFromLS
: "en";
};
const setLocaleToLS = (locale) => {
localStorage.setItem("locale", locale);
};
export { setLocaleToLS, getLocaleFromLS, getUserFromLS, setUserToLS };

View File

@@ -0,0 +1,20 @@
import { isArray, isEmpty, isString, isNumber } from "lodash";
const CUSTOMER_ROLE = "customer";
const EMPLOYEE_ROLE = "employee";
const isValidUser = (user) => {
return (
!isEmpty(user) &&
isNumber(user.ID) &&
isArray(user.roles) &&
!!user.roles.some(
(role) => role === CUSTOMER_ROLE || role === EMPLOYEE_ROLE
) &&
isString(user.email) &&
isString(user.accessToken) &&
isString(user.refreshToken)
);
};
export { isValidUser };