Skip to content

COMMENTS-ADMIN: Восстановление "мягко" удаленного комментария #90

@impatient0

Description

@impatient0

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

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

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

Реализовать эндпоинт PATCH /admin/comments/{commentId}/restore и сервисную логику для восстановления комментария, ранее помеченного как удаленный администратором (установка флага isDeleted = false).

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

  1. Service (CommentServiceImpl):
    • Создать метод restoreCommentByAdmin(Long commentId).
    • Логика:
      • Найти Comment по commentId. Если не найден -> EntityNotFoundException.
      • Если комментарий не был помечен как удаленный (isDeleted == false), можно либо ничего не делать, либо вернуть ошибку (например, 409 "Комментарий не удален"). Проще ничего не делать или вернуть текущий.
      • Установить comment.setDeleted(false).
      • Сохранить комментарий.
      • Вернуть CommentDto восстановленного комментария.
  2. Controller (AdminCommentController):
    • Добавить эндпоинт PATCH /admin/comments/{commentId}/restore.
    • Принимает @PathVariable Long commentId.
    • Вызывает метод сервиса.
    • Возвращает CommentDto со статусом 200 OK.
  3. Тесты: Юнит-тесты для сервиса и контроллера.

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

  • Эндпоинт PATCH /admin/comments/{commentId}/restore реализован.
  • У комментария снимается флаг isDeleted (устанавливается в false).
  • Обрабатывается случай, если комментарий не найден.
  • Возвращается CommentDto и статус 200.
  • Написаны юнит-тесты.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions