From d9824ebabee7e5456ea2ec352dd86be090b2b0d5 Mon Sep 17 00:00:00 2001 From: taehyeon Date: Tue, 31 Dec 2024 14:52:17 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20[Feature]=20=EA=B0=9C=EC=9D=B8?= =?UTF-8?q?=EC=9D=BC=EC=A0=95=20=EC=82=AD=EC=A0=9C=20api=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20#1058?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PrivateScheduleController.java | 8 ++++++++ .../controller/request/PrivateScheduleUpdateReqDto.java | 2 +- .../privateschedule/service/PrivateScheduleService.java | 7 +++++++ .../src/main/java/gg/data/calendar/PrivateSchedule.java | 8 ++++++++ .../src/main/java/gg/data/calendar/PublicSchedule.java | 4 ++++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/PrivateScheduleController.java b/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/PrivateScheduleController.java index d09da761b..f3f8cf294 100644 --- a/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/PrivateScheduleController.java +++ b/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/PrivateScheduleController.java @@ -4,6 +4,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -42,4 +43,11 @@ public ResponseEntity privateScheduleUpdate( privateScheduleUpdateReqDto, id); return ResponseEntity.status(HttpStatus.OK).body(privateScheduleUpdateResDto); } + + @PatchMapping("/{id}") + public ResponseEntity privateScheduleDelete(@Login @Parameter(hidden = true) UserDto userDto, + @PathVariable Long id) { + privateScheduleService.deletePrivateSchedule(userDto, id); + return ResponseEntity.status(HttpStatus.NO_CONTENT).build(); + } } diff --git a/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/request/PrivateScheduleUpdateReqDto.java b/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/request/PrivateScheduleUpdateReqDto.java index fb0622e95..831cfa503 100644 --- a/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/request/PrivateScheduleUpdateReqDto.java +++ b/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/controller/request/PrivateScheduleUpdateReqDto.java @@ -48,7 +48,7 @@ public class PrivateScheduleUpdateReqDto { private Long groupId; @Builder - public PrivateScheduleUpdateReqDto(EventTag eventTag, JobTag jobTag, TechTag techTag, String title, String content, + private PrivateScheduleUpdateReqDto(EventTag eventTag, JobTag jobTag, TechTag techTag, String title, String content, String link, ScheduleStatus status, LocalDateTime startTime, LocalDateTime endTime, boolean alarm, Long groupId) { this.eventTag = eventTag; diff --git a/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/service/PrivateScheduleService.java b/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/service/PrivateScheduleService.java index f514ccbbe..f3492beab 100644 --- a/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/service/PrivateScheduleService.java +++ b/gg-calendar-api/src/main/java/gg/calendar/api/user/schedule/privateschedule/service/PrivateScheduleService.java @@ -65,6 +65,13 @@ public PrivateScheduleUpdateResDto updatePrivateSchedule(UserDto userDto, return PrivateScheduleUpdateResDto.toDto(privateSchedule); } + @Transactional + public void deletePrivateSchedule(UserDto userDto, Long privateScheduleId) { + PrivateSchedule privateSchedule = privateScheduleRepository.findById(privateScheduleId) + .orElseThrow(() -> new NotExistException(ErrorCode.PRIVATE_SCHEDULE_NOT_FOUND)); + privateSchedule.delete(); + } + public void validateTimeRange(LocalDateTime startTime, LocalDateTime endTime) { if (endTime.isBefore(startTime)) { throw new InvalidParameterException(ErrorCode.CALENDAR_BEFORE_DATE); diff --git a/gg-data/src/main/java/gg/data/calendar/PrivateSchedule.java b/gg-data/src/main/java/gg/data/calendar/PrivateSchedule.java index 630077b8e..a9d5e59b6 100644 --- a/gg-data/src/main/java/gg/data/calendar/PrivateSchedule.java +++ b/gg-data/src/main/java/gg/data/calendar/PrivateSchedule.java @@ -14,6 +14,7 @@ import javax.persistence.ManyToOne; import gg.data.BaseTimeEntity; +import gg.data.calendar.type.DetailClassification; import gg.data.calendar.type.EventTag; import gg.data.calendar.type.JobTag; import gg.data.calendar.type.ScheduleStatus; @@ -65,4 +66,11 @@ public void update(EventTag eventTag, JobTag jobTag, TechTag techTag, String tit this.publicSchedule.update(publicSchedule.getClassification(), eventTag, jobTag, techTag, title, content, link, startTime, endTime, status); } + + public void delete() { + this.status = ScheduleStatus.DELETE; + if (this.publicSchedule.getClassification() == DetailClassification.PRIVATE_SCHEDULE) { + publicSchedule.delete(); + } + } } diff --git a/gg-data/src/main/java/gg/data/calendar/PublicSchedule.java b/gg-data/src/main/java/gg/data/calendar/PublicSchedule.java index f0eaaa193..2d3d616cb 100644 --- a/gg-data/src/main/java/gg/data/calendar/PublicSchedule.java +++ b/gg-data/src/main/java/gg/data/calendar/PublicSchedule.java @@ -100,5 +100,9 @@ public void update(DetailClassification classification, EventTag eventTag, JobTa this.endTime = endTime; this.status = status; } + + public void delete() { + this.status = ScheduleStatus.DELETE; + } }