-
Получение списка событий с фильтрацией:
GET http://localhost:8080/events?text=концерт&categories=1,2&paid=true&rangeStart=2025-06-01 00:00:00&rangeEnd=2025-06-30 23:59:59&onlyAvailable=true&sort=VIEWS&from=0&size=10(Предполагается, что даты и время URL-кодированы) -
Получение подробной информации о событии:
GET http://localhost:8080/events/{eventId} -
Получение списка категорий:
GET http://localhost:8080/categories?from=0&size=10 -
Получение категории по ID:
GET http://localhost:8080/categories/{catId} -
Получение списка подборок:
GET http://localhost:8080/compilations?pinned=true&from=0&size=10 -
Получение подборки по ID:
GET http://localhost:8080/compilations/{compId}
- Получение списка комментариев к событию:
GET http://localhost:8080/events/{eventId}/comments?from=0&size=10&sort=createdOn,DESC
Для проверки работоспособности эндпоинтов реализованной дополнительной функциональности "Комментарии" подготовлена Postman-коллекция.
- Расположение:
postman/feature.jsonв корне репозитория. - Проверка: Тесты в коллекции проверяют основные сценарии использования API комментариев, включая коды ответов, базовый формат JSON и значения полей.
Реализована возможность для пользователей оставлять, редактировать и удалять свои комментарии к опубликованным событиям, а также для администраторов модерировать (удалять, восстанавливать) любые комментарии.
Ключевые возможности:
-
Пользователи (Private API):
- Создание комментария к событию (
POST /users/{userId}/comments?eventId={eventId}).- Комментарии можно оставлять только к опубликованным событиям, у которых включена опция комментирования.
- Редактирование своего комментария (
PATCH /users/{userId}/comments/{commentId}).- Возможно только в течение 6 часов после создания.
- Устанавливается флаг
isEdited.
- "Мягкое" удаление своего комментария (
DELETE /users/{userId}/comments/{commentId}).- Комментарий помечается как удаленный (
isDeleted = true), но не удаляется физически.
- Комментарий помечается как удаленный (
- Получение списка своих комментариев (
GET /users/{userId}/comments).
- Создание комментария к событию (
-
Администраторы (Admin API):
- "Мягкое" удаление любого комментария (
DELETE /admin/comments/{commentId}). - Восстановление "мягко" удаленного комментария (
PATCH /admin/comments/{commentId}/restore). - Получение списка всех комментариев с фильтрацией (
GET /admin/comments) по автору, событию, статусу удаления. В ответе (CommentAdminDto) передается флагisDeleted.
- "Мягкое" удаление любого комментария (
-
Все пользователи (Public API):
- Получение списка комментариев для конкретного события (
GET /events/{eventId}/comments).- Возвращаются только не удаленные комментарии.
- Если комментарии к событию отключены (
Event.commentsEnabled = false), возвращается пустой список. - Поддерживается пагинация и сортировка (по умолчанию по дате создания, сначала новые).
- Получение списка комментариев для конкретного события (
-
Интеграция с Событиями (
Event):- В сущность
Eventдобавлено полеcommentsEnabled(boolean, defaulttrue), позволяющее инициатору или администратору включать/отключать возможность комментирования для события. Это поле управляется через эндпоинты создания/обновления событий. - Настроено каскадное удаление комментариев при удалении связанного события или автора.
- В сущность
Детальное описание новых эндпоинтов и DTO для комментариев представлено в обновленной спецификации API ewm-main-service-spec.json.