Skip to content

Commit 57a5477

Browse files
authored
Merge pull request #130 from studio-recoding/dev
[🚀feat] 19차 배포
2 parents 473de20 + 2e266ed commit 57a5477

File tree

4 files changed

+68
-1
lines changed

4 files changed

+68
-1
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){

src/main/java/Ness/Backend/global/error/ErrorCode.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ public enum ErrorCode {
3838
NOTFOUND_CATEGORY(BAD_REQUEST, "CATE003", "해당 카테고리가 해당 맴버에게 존재하지 않습니다."),
3939

4040
/* 리포트 관련 */
41-
MISMATCH_REPORT_RECOMMEND(BAD_REQUEST, "RPT001", "한 줄 추천이 존재하지 않습니다.");
41+
MISMATCH_REPORT_RECOMMEND(BAD_REQUEST, "RPT001", "한 줄 추천이 존재하지 않습니다."),
42+
43+
/* 스케쥴 관련 */
44+
NOTFOUND_SCHEDULE(BAD_REQUEST, "SCHE001", "해당 스케쥴이 존재하지 않습니다.");
4245

4346
private final HttpStatus httpStatus;
4447
private final String code;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package Ness.Backend.global.error.exception;
2+
3+
import Ness.Backend.global.error.ErrorCode;
4+
import lombok.Getter;
5+
6+
@Getter
7+
public class NotFoundScheduleException extends BaseException {
8+
public NotFoundScheduleException() {
9+
super(ErrorCode.NOTFOUND_SCHEDULE, ErrorCode.NOTFOUND_SCHEDULE.getMessage());
10+
}
11+
public NotFoundScheduleException(String message) {
12+
super(ErrorCode.NOTFOUND_SCHEDULE, message);
13+
}
14+
public NotFoundScheduleException(ErrorCode errorCode) {
15+
super(errorCode, errorCode.getMessage());
16+
}
17+
}
18+

0 commit comments

Comments
 (0)