- /users/{id}
Возвращает информацию о конкретном пользователе
Доступно только для всех пользователей
Ответ: Сущность пользователя (без пароля, без ДР, отображает имя статуса, а не номер, город) Админ видит ещё и ДР, роль - /users
Возвращает список пользователей в системе
Доступно для всех пользователей
Ответ: список пользователей (без паролей, без ДР, отображает имя статуса, а не номер, город) Админ видит ещё и др., роль
- /users
Создание пользователя.
Модель:
{
Name: string
Surname: string
Username: string
Password: string
Birthday: Date?
}
Ответ: 200 OK
Доступно неавторизованному пользователю, админу.
Добавить проверку, что не существует пользователя с таким же Username.
После создания юзера происходит логин автоматоически (если создавал не админ)
- /users/{id}/avatar
Загрузка аватара для пользователя
Модель:
{
File: File
}
Файл сохраняется на сервере, генерируется ссылка и устанавливается в качестве аватара пользователя.
Если аватар существовал до загрузки нового аватара, то предыдущий файл удаляется.
Доступно только для администратора или самого пользователя
Ответ: Сущность пользователя (без пароля)
- /login
Авторизация пользователя
Модель:
{
Username: string
Password: string
}
Ответ: Bearer token авторизации
- /logout
Логаут пользователя
Ответ: 200 OK
- /users/{id}
Обновление информации о пользователе.
Модель:
Name: string
Surname: string
Username: string
Password: string
Birthday: Date?
Avatar: string - ссылка на аватарку (на сервере)
Если поле пустое, то сохраняется предыдущее значение
Доступно администратору и самому пользователю для себя
Ответ: Сущность пользователя (без пароля, отображает имя статуса, а не номер)
- /users/{id}/city
Устанавливает пользователю город
Модель:
{
CityID: ID
}
Ответ: 200 OK
- /users/{id}/status
Обновление статуса пользователя
Модель:
{
status: enum (Online, Offline, Do not disturb, In panic, Want to die)
}
Доступно администратору и самому пользователю для себя
Ответ: 200 OK
- /users/{id}/role
Установка роли пользователю
Модель:
{
RoleID: ID
}
Доступно администратору.
Ответ: 200 OK
- /users/{id}
Удаление пользователя. Доступно только админу
Ответ: 200 OK
- /cities/{id}
Возвращает информацию о конкретном городе
Ответ: сущность города - /cities
Возвращает список городов. Доступно всем пользователям
Ответ: список городов - /cities/{id}/peoples
Возвращает список пользователей для конкретного города
Ответ: Список пользователей (Нет пароля, нет ДР, отображается статус)
- /cities
Создание города. Доступно только администратору
Модель:
{
Name: String (Required)
}
Ответ: 200 OK
- /cities/{id}
Редактирование города. Доступно только администратору
Модель:
{
Name: String (Required)
}
Ответ: 200 OK
- /cities/{id}
Удаление города. Доступно только админу.
Ответ: 200 OK
- /photos
Ответ: список фотографий текущего пользователя
Доступно самому пользователю - /user/photos/{userId}
Ответ: список фотографий конкретного пользователя
Доступно любому пользователю
- /photos
Загрузка фотографий
Модель:
{
File: File
}
Файл сохраняется на сервере, генерируется ссылка.
Доступно только для авторизованного пользователя
Ответ: Сущность фотографии (ID, Creator, Link)
- /photos/{id}
Удаление фото. Доступно админу или самому пользователю (своё фото).
Ответ: 200 OK
- /roles/{id}
Возвращает информацию о конкретной роли
Ответ: сущность роли - /roles
Возвращает список ролей
Ответ: список ролей
- /roles
Создание роли. Доступно только админу.
Модель:
{
Name: String (Required)
}
Ответ: 200 OK
- /roles/{id}
Редактирование роли. Доступно только админу.
Доступно редактирование только кастомных ролей (т.е. системные сущности недоступны для редактирования)
Модель:
{
Name: String (Required)
}
Системные роли:
- admin
- moderator
- user
Ответ: 200 OK
- /roles/{id}
Удаление роли. Доступно только админу.
Доступно удаление только кастомных ролей (т.е. системные сущности недоступны для удаления)
Ответ: 200 OK
- /users/{userId}/posts
Получение списка постов по автору
Ответ: список постов - /posts
Получение списка постов
Ответ: список постов - /posts/{postId}
Получение конкретного поста
Ответ: сущность поста
- /posts
Создание поста
Модель:
{
UserId: ID
Text:String (Required)
}
Ответ: 200 OK
- /posts/{id}
Редактирование поста. Доступно автору, админу или модератору
Модель:
{
Text:String (Required)
}
Ответ: 200 OK
- /posts/{id}
Удаление поста. Доступно автору, админу или модератору
Ответ: 200 OK
- /messages/{messageId}
Получение конкретного сообщения. Доступно отправившему пользователю, пользователю, которому предназначалось сообщение.
Ответ: сущность сообщения - /users/{userId}/messages/?offset={offset=0}&limit={limit=5}
Получение списка сообщений пользователя.
Параметры:
userId
: ID пользователя
offset
: Сколько сообщений пропустить
limit
: Количество сообщений на странице (если 0 - отдавать максимум сообщений. Максимум = 100)
Ответ: список сообщений
- /messages
Получение списка сообщений, отправленных тебе или тобой
Ответ: список сообщений
- /users/{userId}/messages/
Отправка сообщения пользователю
Параметры:
userId - ID пользователя
Модель:
{
message: string
}
Ответ: ID сообщения
- /messages/{messageId}
Удаление отправленного сообщения
Доступно для отправителя, получателя и администратора
Ответ: 200 ОК