Files
storage-service-ui/src/api/UsersServiceAPI.js

90 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
getSelfInfo = async () => {
const {data} = await http.get(`${ROOT_URL}/me`);
return data;
}
setAvatar = async (avatar, updateOptions) => {
const {data} = await http.post(`${ROOT_URL}/edit-me`, {...updateOptions, avatar});
return data;
}
changePassword = async (password, updateOptions) => {
const {data} = await http.post(`${ROOT_URL}/edit-me`, {...updateOptions, password});
return data;
}
/**
* Метод поиска пользователя по Логину
* @param {string} login - Логин пользователя
*/
find = async (login) => {
const {data} = await http.get(`${ROOT_URL}/search/${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 (user) => {
const {data} = await http.put(ROOT_URL, user);
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;