diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/DeleteTranslationBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/DeleteTranslationBean.java new file mode 100644 index 0000000..fb927fc --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/DeleteTranslationBean.java @@ -0,0 +1,33 @@ +package HalfFifty.HalfFifty_BE.translation.bean; + +import HalfFifty.HalfFifty_BE.translation.bean.small.DeleteTranslationDAOBean; +import HalfFifty.HalfFifty_BE.translation.bean.small.GetTranslationDAOBean; +import HalfFifty.HalfFifty_BE.translation.domain.DTO.RequestTranslationDeleteDTO; +import HalfFifty.HalfFifty_BE.translation.domain.TranslationDAO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class DeleteTranslationBean { + DeleteTranslationDAOBean deleteTranslationDAOBean; + GetTranslationDAOBean getTranslationDAOBean; + + @Autowired + public DeleteTranslationBean(DeleteTranslationDAOBean deleteTranslationDAOBean, GetTranslationDAOBean getTranslationDAOBean) { + this.deleteTranslationDAOBean = deleteTranslationDAOBean; + this.getTranslationDAOBean = getTranslationDAOBean; + } + + // 번역 기록 삭제 + public boolean exec(RequestTranslationDeleteDTO requestTranslationDeleteDTO) { + // translationId와 userId를 통해서 원하는 객체를 찾음 + TranslationDAO translationDAO = getTranslationDAOBean.exec(requestTranslationDeleteDTO.getTranslationId(), requestTranslationDeleteDTO.getUserId()); + if(translationDAO == null) return Boolean.FALSE; + + // 찾은 객체를 삭제 + deleteTranslationDAOBean.exec(translationDAO); + + // 성공 여부 반환 + return Boolean.TRUE; + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/small/DeleteTranslationDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/small/DeleteTranslationDAOBean.java new file mode 100644 index 0000000..88cb8b7 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/small/DeleteTranslationDAOBean.java @@ -0,0 +1,21 @@ +package HalfFifty.HalfFifty_BE.translation.bean.small; + +import HalfFifty.HalfFifty_BE.translation.domain.TranslationDAO; +import HalfFifty.HalfFifty_BE.translation.repository.TranslationRepositoryJPA; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class DeleteTranslationDAOBean { + TranslationRepositoryJPA translationRepositoryJPA; + + @Autowired + public DeleteTranslationDAOBean(TranslationRepositoryJPA translationRepositoryJPA) { + this.translationRepositoryJPA = translationRepositoryJPA; + } + + // Translation 객체 삭제 + public void exec(TranslationDAO translationDAO) { + translationRepositoryJPA.delete(translationDAO); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/small/GetTranslationDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/small/GetTranslationDAOBean.java new file mode 100644 index 0000000..74164c7 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/bean/small/GetTranslationDAOBean.java @@ -0,0 +1,23 @@ +package HalfFifty.HalfFifty_BE.translation.bean.small; + +import HalfFifty.HalfFifty_BE.translation.domain.TranslationDAO; +import HalfFifty.HalfFifty_BE.translation.repository.TranslationRepositoryJPA; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.UUID; + +@Component +public class GetTranslationDAOBean { + TranslationRepositoryJPA translationRepositoryJPA; + + @Autowired + public GetTranslationDAOBean(TranslationRepositoryJPA translationRepositoryJPA) { + this.translationRepositoryJPA = translationRepositoryJPA; + } + + // translationId와 userId를 통해 원하는 객체 찾음 + public TranslationDAO exec(UUID translationId, UUID userId) { + return translationRepositoryJPA.findByTranslationIdAndUserId(translationId, userId); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/controller/TranslationController.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/controller/TranslationController.java index 415896c..2c3064c 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/controller/TranslationController.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/controller/TranslationController.java @@ -1,6 +1,7 @@ package HalfFifty.HalfFifty_BE.translation.controller; import HalfFifty.HalfFifty_BE.translation.domain.DTO.RequestSignLanguageDTO; +import HalfFifty.HalfFifty_BE.translation.domain.DTO.RequestTranslationDeleteDTO; import HalfFifty.HalfFifty_BE.translation.domain.DTO.ResponseTranslationGetDTO; import HalfFifty.HalfFifty_BE.translation.service.TranslationService; import org.springframework.http.HttpStatus; @@ -39,4 +40,19 @@ public ResponseEntity> translateSignLanguage(@RequestBody Re return ResponseEntity.status(HttpStatus.OK).body(responseMap); } + + @DeleteMapping + public ResponseEntity> deleteTranslation(@RequestBody RequestTranslationDeleteDTO requestTranslationDeleteDTO) { + // 번역 기록 삭제 성공 여부 + boolean success = translationService.deleteTranslation(requestTranslationDeleteDTO); + + // Map을 통해 메시지 값 json 데이터로 변환 + Map requestMap = new HashMap<>(); + requestMap.put("success", success); + requestMap.put("message", success ? "번역 기록 삭제 성공" : "번역 기록 삭제 실패"); + + // status, body 설정해서 응답 리턴 + return ResponseEntity.status(HttpStatus.OK).body(requestMap); + + } } diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/domain/DTO/RequestTranslationDeleteDTO.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/domain/DTO/RequestTranslationDeleteDTO.java new file mode 100644 index 0000000..724562f --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/domain/DTO/RequestTranslationDeleteDTO.java @@ -0,0 +1,11 @@ +package HalfFifty.HalfFifty_BE.translation.domain.DTO; + +import lombok.Data; + +import java.util.UUID; + +@Data +public class RequestTranslationDeleteDTO { + UUID translationId; + UUID userId; +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/repository/TranslationRepositoryJPA.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/repository/TranslationRepositoryJPA.java index 366e759..e7ddd2e 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/repository/TranslationRepositoryJPA.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/repository/TranslationRepositoryJPA.java @@ -8,4 +8,7 @@ @Repository public interface TranslationRepositoryJPA extends JpaRepository { + + // translationId와 userId를 통해 원하는 객체 찾음 + TranslationDAO findByTranslationIdAndUserId(UUID translationId, UUID userId); } diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/service/TranslationService.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/service/TranslationService.java index 5e0ff09..19bfba2 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/service/TranslationService.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/translation/service/TranslationService.java @@ -1,8 +1,10 @@ package HalfFifty.HalfFifty_BE.translation.service; +import HalfFifty.HalfFifty_BE.translation.bean.DeleteTranslationBean; import HalfFifty.HalfFifty_BE.translation.bean.FlaskSignLanguageBean; import HalfFifty.HalfFifty_BE.translation.bean.SaveTranslationBean; import HalfFifty.HalfFifty_BE.translation.domain.DTO.RequestSignLanguageDTO; +import HalfFifty.HalfFifty_BE.translation.domain.DTO.RequestTranslationDeleteDTO; import HalfFifty.HalfFifty_BE.translation.domain.DTO.ResponseTranslationGetDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -14,11 +16,13 @@ public class TranslationService { SaveTranslationBean saveTranslationBean; FlaskSignLanguageBean flaskSignLanguageBean; + DeleteTranslationBean deleteTranslationBean; @Autowired - public TranslationService(SaveTranslationBean saveTranslationBean, FlaskSignLanguageBean flaskSignLanguageBean) { + public TranslationService(SaveTranslationBean saveTranslationBean, FlaskSignLanguageBean flaskSignLanguageBean, DeleteTranslationBean deleteTranslationBean) { this.saveTranslationBean = saveTranslationBean; this.flaskSignLanguageBean = flaskSignLanguageBean; + this.deleteTranslationBean = deleteTranslationBean; } public ResponseTranslationGetDTO signLanguageTranslation(RequestSignLanguageDTO requestSignLanguageDTO) { @@ -33,4 +37,8 @@ public ResponseTranslationGetDTO signLanguageTranslation(RequestSignLanguageDTO } } + // 번역 기록 삭제 + public boolean deleteTranslation(RequestTranslationDeleteDTO requestTranslationDeleteDTO) { + return deleteTranslationBean.exec(requestTranslationDeleteDTO); + } }