HM-82. Добавление api для работы с пользователями (#37)

This commit is contained in:
Nikolay
2020-07-30 21:47:26 +03:00
committed by GitHub
parent ad486674af
commit 6a87a97c85
2 changed files with 77 additions and 0 deletions

View File

@ -12,6 +12,9 @@ import tokenApi from './TokenAPI';
/** /**
* Api прикрепляет ко всем запросом заголовок с токеном авторизации. В случае, когда сервер * Api прикрепляет ко всем запросом заголовок с токеном авторизации. В случае, когда сервер
* возвращает ошибку 401 (Не авторизован), пытается рефрешнуть токен. В момент обновления пары токенов
* api сохраняет все запросы в очередь. Если ревреш токенов удался, то запросы будут выполнены
* в том же порядке, как и пришли, либо упадут с ошибкой, если ревреш выполнить не удалось.
* @class HttpAuthApi * @class HttpAuthApi
*/ */
class HttpAuthApi { class HttpAuthApi {

View File

@ -0,0 +1,74 @@
import http from './HttpAPI';
const ROOT_URL = 'http://api.auth.vigdorov.ru/users';
/**
* Объект с полями для создания пользователя
* @interface UserCreateOptions
* @type {Object}
* @property {string} login - Логин пользователя
* @property {string} password - Пароль пользователя
* @property {string} avatar - url на аватарку пользователя
*/
/**
* Объект с полями для обновления данных пользователя
* @interface UpdateUserOptions
* @type {Object}
* @property {string} avatar - url на аватарку пользователя
*/
/**
* Класс для работы с api пользователей
* @class UsersService
*/
class UsersService {
/**
* Метод получения полного списка пользователей
*/
request = async () => {
const {data} = await http.get(ROOT_URL);
return data;
}
/**
* Метод поиска пользователя по Логину
* @param {string} login - Логин пользователя
*/
find = async (login) => {
const {data} = await http.get(`${ROOT_URL}/${login}`);
return data;
}
/**
* Метод создания пользователя
* @param {UserCreateOptions} user - настройки для создания пользователя
*/
create = async (user) => {
const {data} = await http.post(ROOT_URL, user);
return data;
}
/**
* Метод обновления информации о пользователе
* @param {string} login - Логин пользователя
* @param {UpdateUserOptions} updateOptions - настройки для обновления пользователя
*/
update = async (login, updateOptions) => {
const {data} = await http.put(ROOT_URL, {...updateOptions, login});
return data;
}
/**
* Метод удаления пользователя
* @param {string} login - Логин пользователя
*/
remove = async (login) => {
const {data} = await http.delete(`${ROOT_URL}/${login}`);
return data;
}
}
const usersServiceApi = new UsersService();
export default usersServiceApi;