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); + } }