diff --git a/public/icon_main.svg b/public/icon_main.svg new file mode 100644 index 0000000..d243fc9 --- /dev/null +++ b/public/icon_main.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/confconnect.js b/src/confconnect.js new file mode 100644 index 0000000..b134f63 --- /dev/null +++ b/src/confconnect.js @@ -0,0 +1,37 @@ +import axios from 'axios'; + +import { AUTH_TOKEN, USER_KEY } from '@/shared/consts/localStorage'; +import { getRouteLogin } from '@/shared/consts/router'; + +const instance = axios.create({ + baseURL: 'http://localhost:8093/', + headers: { + 'Content-type': 'application/json', + }, +}); + +instance.interceptors.response.use(undefined, async (error) => { + if (error.response?.status === 401) { + localStorage.removeItem(AUTH_TOKEN); + localStorage.removeItem(USER_KEY); + + window.location.href = getRouteLogin(); + } + + return Promise.reject(error); +}); + +instance.interceptors.request.use( + (config) => { + const token = localStorage.getItem(AUTH_TOKEN); + const c = config; + + if (token && config) { + c.headers.Authorization = `Bearer ${token}`; + } + return config; + }, + (error) => Promise.reject(error), +); + +export { instance as connect }; diff --git a/src/shared/consts/localStorage.ts b/src/shared/consts/localStorage.ts new file mode 100644 index 0000000..b2535b9 --- /dev/null +++ b/src/shared/consts/localStorage.ts @@ -0,0 +1,2 @@ +export const USER_KEY = 'user'; +export const AUTH_TOKEN = 'token'; diff --git a/src/shared/consts/router.ts b/src/shared/consts/router.ts new file mode 100644 index 0000000..3fc953f --- /dev/null +++ b/src/shared/consts/router.ts @@ -0,0 +1,20 @@ +export const getRouteLogin = () => `/auth/login`; +export const getRouteRegister = () => `/auth/register`; +export const getRouteResetPassword = () => `/auth/reset-password`; +export const getRouteLkHome = () => `/lk`; + +export const getRouteUsersList = () => `/lk/admin/users`; +export const getRouteUserEdit = (id: number | string) => `/lk/admin/users/${id}`; +export const getRouteUserCreate = () => `/lk/admin/users/create`; + +export const getRouteUserRolesList = () => `/lk/admin/user-roles`; +export const getRouteUserRoleEdit = (id: number | string) => `/lk/admin/user-roles/${id}`; +export const getRouteUserRoleCreate = () => `/lk/admin/user-roles/create`; + +export const getRouterExercisesList = () =>`/lk/admin/exercises`; +export const getRouterExercisesEdit = (id: number | string) =>`/lk/admin/exercises/${id}`; +export const getRouterExercisesCreate = () =>`/lk/admin/exercises/create`; + +export const getRouterCoursesList = () => `/lk/admin/courses`; +export const getRouterCoursesEdit = (id: number | string) => `/lk/admin/courses/${id}`; +export const getRouterCoursesCreate = () => `/lk/admin/courses/create`;