HM-82. Добавление api для работы с пользователями (#37)
This commit is contained in:
@ -12,6 +12,9 @@ import tokenApi from './TokenAPI';
|
||||
|
||||
/**
|
||||
* Api прикрепляет ко всем запросом заголовок с токеном авторизации. В случае, когда сервер
|
||||
* возвращает ошибку 401 (Не авторизован), пытается рефрешнуть токен. В момент обновления пары токенов
|
||||
* api сохраняет все запросы в очередь. Если ревреш токенов удался, то запросы будут выполнены
|
||||
* в том же порядке, как и пришли, либо упадут с ошибкой, если ревреш выполнить не удалось.
|
||||
* @class HttpAuthApi
|
||||
*/
|
||||
class HttpAuthApi {
|
||||
|
||||
74
src/api/UsersServiceAPI.js
Normal file
74
src/api/UsersServiceAPI.js
Normal 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;
|
||||
Reference in New Issue
Block a user