|
15 | 15 | import Ness.Backend.domain.schedule.dto.response.GetScheduleListDto;
|
16 | 16 | import Ness.Backend.domain.schedule.entity.Schedule;
|
17 | 17 | import Ness.Backend.global.error.exception.NotFoundCategoryException;
|
| 18 | +import Ness.Backend.global.error.exception.NotFoundScheduleException; |
18 | 19 | import Ness.Backend.global.fastApi.FastApiDeleteScheduleApi;
|
19 | 20 | import Ness.Backend.global.fastApi.FastApiPostScheduleApi;
|
20 | 21 | import Ness.Backend.global.fastApi.FastApiPutScheduleApi;
|
@@ -170,6 +171,44 @@ public GetChatListDto postAiScheduleAccept(Long memberId, Boolean idAccepted, Lo
|
170 | 171 | return chatService.getOneWeekUserChat(memberId);
|
171 | 172 | }
|
172 | 173 |
|
| 174 | + /* 사용자가 AI가 삭제 요청한 스케쥴을 Accept/Deny한 여부에 따라서 채팅 및 스케쥴 저장 */ |
| 175 | + public GetChatListDto deleteAiScheduleAccept(Long memberId, Boolean idAccepted, Long scheduleId){ |
| 176 | + Member member = memberRepository.findMemberById(memberId); |
| 177 | + Schedule schedule = scheduleRepository.findScheduleById(scheduleId); |
| 178 | + |
| 179 | + /* 사용자가 Accept 했으면 스케쥴 생성하기 */ |
| 180 | + if(idAccepted){ |
| 181 | + /* 삭제할 스케쥴이 정상적으로 존재하는 경우 */ |
| 182 | + if(schedule != null){ |
| 183 | + //VectorDB에서 삭제 |
| 184 | + DeleteFastApiScheduleDto dto = DeleteFastApiScheduleDto.builder() |
| 185 | + .member_id(memberId) |
| 186 | + .schedule_id(scheduleId) |
| 187 | + .build(); |
| 188 | + |
| 189 | + ResponseEntity<JsonNode> responseNode = fastApiDeleteScheduleApi.deleteFastApiSchedule(dto); |
| 190 | + if (responseNode.getStatusCode() == HttpStatusCode.valueOf(204)) { |
| 191 | + log.info("Succeed to delete data in Vector DB"); |
| 192 | + } else { |
| 193 | + log.error("Failed to delete data in Vector DB"); |
| 194 | + } |
| 195 | + |
| 196 | + //RDB에서 삭제 |
| 197 | + scheduleRepository.delete(schedule); |
| 198 | + |
| 199 | + chatService.createNewChat("일정을 삭제해드렸습니다!", ChatType.AI, 1, member); |
| 200 | + } |
| 201 | + else{ |
| 202 | + throw new NotFoundScheduleException(); |
| 203 | + } |
| 204 | + } else { |
| 205 | + chatService.createNewChat("일정 추가를 취소했습니다.\n다른 할 일이 있으면 알려주세요.", ChatType.AI, 1, member); |
| 206 | + } |
| 207 | + |
| 208 | + // 모든 채팅 내역 반환 |
| 209 | + return chatService.getOneWeekUserChat(memberId); |
| 210 | + } |
| 211 | + |
173 | 212 |
|
174 | 213 | /* 사용자가 직접 생성한 스케쥴을 RDB & VectorDB에 저장 */
|
175 | 214 | public GetScheduleListDto postNewUserSchedule(Long memberId, PostScheduleDto postScheduleDto){
|
|
0 commit comments