From b76037d33a5ffbafa0d3f666f2c49b2f9b5f90a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EA=B7=9C=EB=B9=88?= Date: Fri, 6 Dec 2024 17:52:24 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20=EB=8B=A8?= =?UTF-8?q?=EC=96=B4=20=EC=82=AD=EC=A0=9C=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sonisori/common/constants/ErrorMessage.java | 1 + .../sonisori/controller/SignWordController.java | 10 ++++++++++ .../sonisori/sonisori/service/SignWordService.java | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/src/main/java/site/sonisori/sonisori/common/constants/ErrorMessage.java b/src/main/java/site/sonisori/sonisori/common/constants/ErrorMessage.java index f625604..0c73f23 100644 --- a/src/main/java/site/sonisori/sonisori/common/constants/ErrorMessage.java +++ b/src/main/java/site/sonisori/sonisori/common/constants/ErrorMessage.java @@ -19,6 +19,7 @@ public enum ErrorMessage { NOT_FOUND_USER("존재하지 않는 회원입니다."), NOT_FOUND_TOPIC("존재하지 않는 토픽입니다."), NOT_FOUND_QUIZ("존재하지 않는 퀴즈입니다."), + NOT_FOUND_WORD("존재하지 않는 단어입니다."), EXCEEDS_TOTAL_COUNT("정답 개수가 전체 문제 수를 초과할 수 없습니다."), UNDER_QUIZ_COUNT("퀴즈 개수는 최소 0개 이상이어야 합니다."); diff --git a/src/main/java/site/sonisori/sonisori/controller/SignWordController.java b/src/main/java/site/sonisori/sonisori/controller/SignWordController.java index 5d40f0a..132a6eb 100644 --- a/src/main/java/site/sonisori/sonisori/controller/SignWordController.java +++ b/src/main/java/site/sonisori/sonisori/controller/SignWordController.java @@ -4,7 +4,9 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -34,4 +36,12 @@ public ResponseEntity addSignWordByAdmin(@RequestBody @Valid Si SuccessResponse successResponse = signWordService.addSignWord(signWordRequest); return ResponseEntity.status(HttpStatus.CREATED).body(successResponse); } + + @DeleteMapping("/admin/words/{wordId}") + public ResponseEntity deleteSignWordByAdmin( + @PathVariable(name = "wordId") Long wordId + ) { + signWordService.deleteSignWord(wordId); + return ResponseEntity.status(HttpStatus.NO_CONTENT).build(); + } } diff --git a/src/main/java/site/sonisori/sonisori/service/SignWordService.java b/src/main/java/site/sonisori/sonisori/service/SignWordService.java index 0699693..eaea894 100644 --- a/src/main/java/site/sonisori/sonisori/service/SignWordService.java +++ b/src/main/java/site/sonisori/sonisori/service/SignWordService.java @@ -7,10 +7,12 @@ import org.springframework.transaction.annotation.Transactional; import lombok.RequiredArgsConstructor; +import site.sonisori.sonisori.common.constants.ErrorMessage; import site.sonisori.sonisori.common.response.SuccessResponse; import site.sonisori.sonisori.dto.signword.SignWordRequest; import site.sonisori.sonisori.dto.signword.SignWordResponse; import site.sonisori.sonisori.entity.SignWord; +import site.sonisori.sonisori.exception.NotFoundException; import site.sonisori.sonisori.repository.SignWordRepository; @Service @@ -35,4 +37,12 @@ public SuccessResponse addSignWord(SignWordRequest signWordRequest) { Long id = signWordRepository.save(signWord).getId(); return new SuccessResponse(id); } + + public void deleteSignWord(Long wordId) { + if (!signWordRepository.existsById(wordId)) { + throw new NotFoundException(ErrorMessage.NOT_FOUND_WORD.getMessage()); + } + + signWordRepository.deleteById(wordId); + } }