Skip to content

Commit fc12d7a

Browse files
committed
[feat] AI로 스케쥴 삭제 API 생성
1 parent c2fd4f8 commit fc12d7a

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

src/main/java/Ness/Backend/domain/schedule/ScheduleController.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,11 @@ public ResponseEntity<GetChatListDto> PostAiSchedule(@AuthUser Member member, @R
5858
GetChatListDto oneUserChats = scheduleService.postAiScheduleAccept(member.getId(), isAccepted, chatId, postScheduleDto);
5959
return new ResponseEntity<>(oneUserChats, HttpStatusCode.valueOf(200));
6060
}
61+
62+
@DeleteMapping("/ai")
63+
@Operation(summary = "AI에 의해서 삭제된 스케쥴", description = "프론트가 보내주는 AI에 의해서 생성된 새로운 스케쥴을 Accept/Deny합니다.")
64+
public ResponseEntity<GetChatListDto> DeleteAiSchedule(@AuthUser Member member, @RequestParam Boolean isAccepted, @RequestParam Long scheduleId){
65+
GetChatListDto oneUserChats = scheduleService.deleteAiScheduleAccept(member.getId(), isAccepted, scheduleId);
66+
return new ResponseEntity<>(oneUserChats, HttpStatusCode.valueOf(200));
67+
}
6168
}

src/main/java/Ness/Backend/domain/schedule/ScheduleService.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import Ness.Backend.domain.schedule.dto.response.GetScheduleListDto;
1616
import Ness.Backend.domain.schedule.entity.Schedule;
1717
import Ness.Backend.global.error.exception.NotFoundCategoryException;
18+
import Ness.Backend.global.error.exception.NotFoundScheduleException;
1819
import Ness.Backend.global.fastApi.FastApiDeleteScheduleApi;
1920
import Ness.Backend.global.fastApi.FastApiPostScheduleApi;
2021
import Ness.Backend.global.fastApi.FastApiPutScheduleApi;
@@ -170,6 +171,44 @@ public GetChatListDto postAiScheduleAccept(Long memberId, Boolean idAccepted, Lo
170171
return chatService.getOneWeekUserChat(memberId);
171172
}
172173

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+
173212

174213
/* 사용자가 직접 생성한 스케쥴을 RDB & VectorDB에 저장 */
175214
public GetScheduleListDto postNewUserSchedule(Long memberId, PostScheduleDto postScheduleDto){

0 commit comments

Comments
 (0)