Skip to content

COMMENTS-PRIVATE: "Мягкое" удаление своего комментария #87

@impatient0

Description

@impatient0

Зависимости:

  • COMMENTS-CORE: Сущность Comment, репозиторий и базовый маппинг (полностью).
  • COMMENTS-PRIVATE: Создание комментария пользователем.
  • GlobalExceptionHandler.

Описание Задачи:

Реализовать эндпоинт DELETE /users/{userId}/comments/{commentId} и сервисную логику для "мягкого" удаления пользователем своего комментария (установка флага isDeleted = true).

Основные шаги:

  1. Service (CommentServiceImpl):
    • Создать метод deleteUserComment(Long userId, Long commentId).
    • Логика:
      • Найти Comment по commentId. Если не найден -> EntityNotFoundException.
      • Проверить, что comment.getAuthor().getId() совпадает с userId. Если нет -> AccessDeniedException / EntityNotFoundException.
      • Установить comment.setDeleted(true).
      • Сохранить комментарий.
  2. Controller (PrivateCommentController):
    • Добавить эндпоинт DELETE /users/{userId}/comments/{commentId}.
    • Принимает @PathVariable Long userId, @PathVariable Long commentId.
    • Вызывает метод сервиса.
    • Возвращает статус 204 NO CONTENT.
  3. Тесты: Юнит-тесты для сервиса и контроллера.

Критерии готовности:

  • Эндпоинт DELETE /users/{userId}/comments/{commentId} реализован.
  • Пользователь может "мягко" удалить только свой комментарий.
  • У комментария устанавливается флаг isDeleted = true.
  • Возвращается статус 204.
  • Написаны юнит-тесты.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions