Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 5.66 KB

File metadata and controls

67 lines (47 loc) · 5.66 KB

Примеры использования API

Публичные эндпоинты Событий, Категорий, Подборок

  • Получение списка событий с фильтрацией: 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-коллекция.

  • Расположение: 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, default true), позволяющее инициатору или администратору включать/отключать возможность комментирования для события. Это поле управляется через эндпоинты создания/обновления событий.
    • Настроено каскадное удаление комментариев при удалении связанного события или автора.

Детальное описание новых эндпоинтов и DTO для комментариев представлено в обновленной спецификации API ewm-main-service-spec.json.