diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/DeleteAqBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/DeleteAqBean.java new file mode 100644 index 0000000..6eaecd7 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/DeleteAqBean.java @@ -0,0 +1,33 @@ +package HalfFifty.HalfFifty_BE.FAQ.bean; + +import HalfFifty.HalfFifty_BE.FAQ.bean.small.DeleteAqDAOBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.small.GetAqDAOBean; +import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqDeleteDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class DeleteAqBean { + GetAqDAOBean getAqDAOBean; + DeleteAqDAOBean deleteAqDAOBean; + + @Autowired + public DeleteAqBean(GetAqDAOBean getAqDAOBean, DeleteAqDAOBean deleteAqDAOBean) { + this.getAqDAOBean = getAqDAOBean; + this.deleteAqDAOBean = deleteAqDAOBean; + } + + // AQ 삭제 + public Boolean exec(RequestAqDeleteDTO requestAqDeleteDTO) { + // AQ 아이디와 user 아이디를 통해 원하는 객체 찾기 + AqDAO aqDAO = getAqDAOBean.exec(requestAqDeleteDTO.getAqId(), requestAqDeleteDTO.getUserId()); + if(aqDAO == null) return false; + + // 찾은 객체 삭제 + deleteAqDAOBean.exec(aqDAO); + + // 삭제 성공 여부 반환 + return true; + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/DeleteAqDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/DeleteAqDAOBean.java new file mode 100644 index 0000000..3c0c582 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/DeleteAqDAOBean.java @@ -0,0 +1,21 @@ +package HalfFifty.HalfFifty_BE.FAQ.bean.small; + +import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; +import HalfFifty.HalfFifty_BE.FAQ.repository.AqRepositoryJPA; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class DeleteAqDAOBean { + AqRepositoryJPA aqRepositoryJPA; + + @Autowired + public DeleteAqDAOBean(AqRepositoryJPA aqRepositoryJPA) { + this.aqRepositoryJPA = aqRepositoryJPA; + } + + // AQ 삭제 + public void exec(AqDAO aqDAO) { + aqRepositoryJPA.delete(aqDAO); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java index 082d7f8..e18a755 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java @@ -20,4 +20,9 @@ public GetAqDAOBean(AqRepositoryJPA aqRepositoryJPA) { public AqDAO exec(UUID AqId) { return aqRepositoryJPA.findById(AqId).orElse(null); } + + // AQ 아이디와 userId를 통해 원하는 객체 찾기 + public AqDAO exec(UUID aqId, UUID userId) { + return aqRepositoryJPA.findByAqIdAndUserId(aqId, userId); + } } diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java index dd99a27..950ce3e 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java @@ -1,6 +1,7 @@ package HalfFifty.HalfFifty_BE.FAQ.controller; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqDeleteDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO; import HalfFifty.HalfFifty_BE.FAQ.service.AqService; @@ -79,4 +80,18 @@ public ResponseEntity> updateAdminAq(@RequestBody RequestAqA // status, body 값 설정해서 응답 리턴 return ResponseEntity.status(HttpStatus.OK).body(requestMap); } + + @DeleteMapping + public ResponseEntity> deleteAq(@RequestBody RequestAqDeleteDTO requestAqDeleteDTO) { + // AQ 삭제 service 성공 여부 + Boolean success = aqService.deleteAq(requestAqDeleteDTO); + + // Map을 통해 메시지와 list 값 json 데이터로 변환 + Map requestMap = new HashMap<>(); + requestMap.put("success", success); + requestMap.put("message", success ? "AQ 삭제 성공" : "AQ 삭제 실패"); + + // status, body 값 설정해서 응답 리턴 + return ResponseEntity.status(HttpStatus.OK).body(requestMap); + } } diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/RequestAqDeleteDTO.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/RequestAqDeleteDTO.java new file mode 100644 index 0000000..0a46161 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/RequestAqDeleteDTO.java @@ -0,0 +1,11 @@ +package HalfFifty.HalfFifty_BE.FAQ.domain.DTO; + +import lombok.Data; + +import java.util.UUID; + +@Data +public class RequestAqDeleteDTO { + UUID aqId; + UUID userId; +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java index 6b4d18c..10051bf 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java @@ -12,4 +12,7 @@ public interface AqRepositoryJPA extends JpaRepository { // user 아이디를 통해 원하는 객체 리스트 찾기 List findAllByUserId(UUID userId); + + // AQ 아이디와 user 아이디를 통해 원하는 객체 찾기 + AqDAO findByAqIdAndUserId(UUID aqId, UUID userId); } diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java index 6f302fc..cc42702 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java @@ -1,9 +1,11 @@ package HalfFifty.HalfFifty_BE.FAQ.service; import HalfFifty.HalfFifty_BE.FAQ.bean.AqUserSaveBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.DeleteAqBean; import HalfFifty.HalfFifty_BE.FAQ.bean.GetAqsBean; import HalfFifty.HalfFifty_BE.FAQ.bean.UpdateAqAdminBean; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqDeleteDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO; import org.springframework.beans.factory.annotation.Autowired; @@ -17,13 +19,14 @@ public class AqService { AqUserSaveBean aqUserSaveBean; UpdateAqAdminBean updateAqAdminBean; GetAqsBean getAqsBean; - + DeleteAqBean deleteAqBean; @Autowired - public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean, GetAqsBean getAqsBean) { + public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean, GetAqsBean getAqsBean, DeleteAqBean deleteAqBean) { this.aqUserSaveBean = aqUserSaveBean; this.updateAqAdminBean = updateAqAdminBean; this.getAqsBean = getAqsBean; + this.deleteAqBean = deleteAqBean; } // AQ 전체조회 @@ -40,4 +43,9 @@ public UUID saveUserAq(RequestAqUserSaveDTO requestAqUserSaveDTO) { public UUID updateAdminAq(RequestAqAdminUpdateDTO requestAqAdminUpdateDTO) { return updateAqAdminBean.exec(requestAqAdminUpdateDTO); } + + // AQ 삭제 + public Boolean deleteAq(RequestAqDeleteDTO requestAqDeleteDTO) { + return deleteAqBean.exec(requestAqDeleteDTO); + } }