Система управлениями задачами ( Task Management System ) сервис позволяет пользователю создавать, редактировать и удалять задачи. Пользователь может посмотреть любую задачу, получить список задач определенного пользователя, список задач определенного исполнителя или получить список задач по фильтру, но редактировать только свои. Исполнители также могут просматривать любые задачи, но менять статус только тех задач где они являются исполнителями. К каждой задаче пользователи могут создавать, редактировать и удалять комментарии. Редактировать и удалять комментарии может только автор комментария.
Запускаем через docker compose, миграция Liquibase, Swagger UI.
Сервис получает данные, проверяет, и после этого отвечает, что все данные валидны и отправляет токен.
POST /auth/reg - создание пользователя
Content-Type : application/json
{
"name": "Иван",
"surname": "Иванов",
"email": "[email protected]",
"password": "wH&bkYvkV(aD"
}
HTTPStatus.CREATED
{
"id": 19,
"accessToken": "eyJhbGciOiJIUzI1NiJ9.ehwIjoxNjk4NTcy2OTg1Z9.jas6nGzHcURmxWMkoWQzwYs7jinwaq6Lpy-i6QXBbn4"
}
- 201 - пользователь успешно создан
- 400 - в теле запроса ошибка
- 409 - конфликт (например, пользователь с таким email уже существует в БД)
- 500 - неизвестная ошибка сервера
Ответы в случае ошибок:
| Ошибка | Дополнительная информация | Ответ |
|---|---|---|
| 400 | Ошибка в JSON | { "status": "BAD_REQUEST", "message": "Неверная структура объекта: проверьте скобки, запятые и названия полей", "date": "2023-09-11 19:06:04" } |
| 400 | Не передано поле Имя/пустое | { "status": "BAD_REQUEST", "message": "Имя обязательно для заполнения; ", "date": "2023-09-11 19:06:04" } |
| 400 | Не передано поле Фамилия/пустое | { "status": "BAD_REQUEST", "message": "Фамилия не должен быть пустым; ", "date": "2023-09-11 19:06:04" } |
| 400 | Не передано поле Password/пустое | { "status": "BAD_REQUEST", "message": "Пароль не должен быть пустым", "date": "2023-09-11 19:06:04" } |
| 400 | Не передано поле Email/пустое | { "status": "BAD_REQUEST", "message": "Поле Email обязательно для заполнения; ", "date": "2023-09-11 19:06:04" } |
| 409 | Пользователь с указанным Email уже есть в БД |
{ "status": "CONFLICT", "message": "Эта электронная почта уже существует в базе данных", "date": "2023-09-11 19:06:04" } |
| 500 | нет | { "status": "INTERNAL_SERVER_ERROR", "message": "Неизвестная ошибка сервера", "date": "2023-09-11 19:06:04" } |
| Поле | Ограничение | Код ответа | Ответ |
|---|---|---|---|
| name | Обязательное, не пустое, не более 50 символов | 400 | { "status": "BAD_REQUEST", "message": "Имя должно быть не больше 50 знаков; ", "date": "2023-09-11 19:06:04" } |
| surname | Не обязательное, не более 50 символов | 400 | { "status": "BAD_REQUEST", "message": "Фамилия должна быть не больше 50 знаков; ", "date": "2023-09-11 19:06:04" } |
| password | Обязательное, не пустое, не более 50 символов | 400 | { "status": "BAD_REQUEST", "message": "Пароль должен быть не больше 50 знаков; ", "date": "2023-09-11 19:06:04" } |
| Обязательное, не пустое, не более 70 символов, должно соответствовать формату Email | 400 | { "status": "BAD_REQUEST", "message": "Email должен быть не больше 70 знаков; ", "date": "2023-09-11 19:06:04" } |
Сервис получает данные ( username/password ), проверяет все данные и, если пользователь с такими данными существует, отдаёт в теле ответа его id, accessToken.
POST /auth/login - логин
Content-Type : application/json
{
"username": "[email protected]",
"password": "wH&bkYvkV(aD"
}
HTTPStatus.OK
{
"id": 19,
"accessToken": "eyJhbGciOiJIUzI1NiJ9.jk4NTcyNDM2XQiOjE2OTg1NzIzNzZ9.jas6nGzHcURmxWMkoWQzwYs7jinwaq6Lpy-i6QXBbn4"
}
- 200 - операция прошла успешно
- 400 - в теле запроса ошибка
- 404 - пользователь с таким email не найден
- 500 - неизвестная ошибка сервера
Ответы в случае ошибок:
| Ошибка | Дополнительная информация | Ответ |
|---|---|---|
| 400 | Ошибка в JSON | { "status": "BAD_REQUEST", "message": "Неверная структура объекта: проверьте скобки, запятые и названия полей", "date": "2023-09-11 19:06:04" } |
| 404 | Пользователь с таким email не найден | { "status": "NOT_FOUND", "message": "Пользователь с таким email не найден", "date": "2023-09-11 19:06:04" } |
| 500 | Нет | { "status": "INTERNAL_SERVER_ERROR", "message": "Неизвестная ошибка сервера", "date": "2023-09-11 19:06:04" } |