generated from yandex-praktikum/java-explore-with-me-plus
-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Description
Зависимости:
COMMENTS-CORE: Сущность Comment, репозиторий и базовый маппинг(полностью).COMMENTS-PRIVATE: Создание комментария пользователем.GlobalExceptionHandler.
Описание Задачи:
Реализовать эндпоинт DELETE /users/{userId}/comments/{commentId} и сервисную логику для "мягкого" удаления пользователем своего комментария (установка флага isDeleted = true).
Основные шаги:
- Service (
CommentServiceImpl):- Создать метод
deleteUserComment(Long userId, Long commentId). - Логика:
- Найти
CommentпоcommentId. Если не найден ->EntityNotFoundException. - Проверить, что
comment.getAuthor().getId()совпадает сuserId. Если нет ->AccessDeniedException/EntityNotFoundException. - Установить
comment.setDeleted(true). - Сохранить комментарий.
- Найти
- Создать метод
- Controller (
PrivateCommentController):- Добавить эндпоинт
DELETE /users/{userId}/comments/{commentId}. - Принимает
@PathVariable Long userId,@PathVariable Long commentId. - Вызывает метод сервиса.
- Возвращает статус
204 NO CONTENT.
- Добавить эндпоинт
- Тесты: Юнит-тесты для сервиса и контроллера.
Критерии готовности:
- Эндпоинт
DELETE /users/{userId}/comments/{commentId}реализован. - Пользователь может "мягко" удалить только свой комментарий.
- У комментария устанавливается флаг
isDeleted = true. - Возвращается статус
204. - Написаны юнит-тесты.