import axios from 'axios'; import {AUTH_SERVICE, AUTH_ENDPOINTS} from './consts'; import tokenApi from './TokenAPI'; /** * Api для выполнения запросов авторизации * @class AuthServiceApi */ class AuthServiceApi { constructor () { this.URL = AUTH_SERVICE; } /** * Выполняет запрос авторизации и если он успешен, то добавляет токены в память * @param {string} login - логин пользователя * @param {string} password - пароль пользователя * @returns {Promise} */ auth = (login, password) => { return axios.post(`${this.URL}${AUTH_ENDPOINTS.AUTH}`, { login, password, }).then(({data: tokens}) => { tokenApi.saveTokenPair(tokens); }); } /** * Пытается реврешнуть пару токенов и в случае успеха обновляет их в памяти * @returns {Promise} */ refresh = () => { const refresh_token = tokenApi.getRefreshToken(); return axios.post(`${this.URL}${AUTH_ENDPOINTS.REFRESH}`, {refresh_token}) .then(({data: tokens}) => { tokenApi.saveTokenPair(tokens); }); } } const authServiceApi = new AuthServiceApi(); export default authServiceApi;