Skip to content

Commit 37ba15f

Browse files
authored
Merge pull request #21 from studio-recoding/feat-chat-ai
[🚀feat] chat ai와의 통합
2 parents 7305a21 + fae8cd9 commit 37ba15f

File tree

4 files changed

+79
-9
lines changed

4 files changed

+79
-9
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,10 @@ public ResponseEntity<Long> createSchedule(@AuthUser Member member, @RequestBody
3737
return new ResponseEntity<>(userId, HttpStatusCode.valueOf(200));
3838
}
3939

40-
}
40+
@PutMapping("/dev/schedule/new")
41+
@Operation(summary = "새로운 스케쥴 내역", description = "새로운 스케쥴 내역 저장하는 API 입니다.")
42+
public ResponseEntity<Long> createDevSchedule(@RequestBody ScheduleCreateRequestDto scheduleCreateRequestDto){
43+
Long userId = scheduleService.createNewSchedule(1L, scheduleCreateRequestDto);
44+
return new ResponseEntity<>(userId, HttpStatusCode.valueOf(200));
45+
}
46+
}

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

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package Ness.Backend.domain.schedule;
22

3+
import Ness.Backend.domain.schedule.dto.ScheduleCreateFastApiDto;
34
import Ness.Backend.domain.report.dto.ReportMemoryDto;
45
import Ness.Backend.domain.report.dto.ReportMemoryListResponseDto;
56
import Ness.Backend.domain.report.entity.ReportMemory;
@@ -9,7 +10,12 @@
910
import Ness.Backend.domain.schedule.entity.Schedule;
1011
import Ness.Backend.domain.member.MemberRepository;
1112
import Ness.Backend.domain.schedule.dto.ScheduleCreateRequestDto;
13+
import Ness.Backend.global.fastApi.FastApiScheduleApi;
14+
import com.fasterxml.jackson.databind.JsonNode;
1215
import lombok.RequiredArgsConstructor;
16+
import lombok.extern.slf4j.Slf4j;
17+
import org.springframework.http.HttpStatusCode;
18+
import org.springframework.http.ResponseEntity;
1319
import org.springframework.stereotype.Service;
1420
import org.springframework.transaction.annotation.Transactional;
1521

@@ -21,10 +27,12 @@
2127

2228
@Service
2329
@RequiredArgsConstructor
30+
@Slf4j
2431
@Transactional(readOnly = true)
2532
public class ScheduleService {
2633
private final ScheduleRepository scheduleRepository;
2734
private final MemberRepository memberRepository;
35+
private final FastApiScheduleApi fastApiScheduleApi;
2836

2937
public ScheduleListResponseDto findOneUserMonthSchedule(Long id, String date){
3038
// 년도, 월, 일 추출
@@ -71,14 +79,6 @@ public ScheduleListResponseDto findOneUserDaySchedule(Long id, String date){
7179
public Long createNewSchedule(Long id, ScheduleCreateRequestDto scheduleCreateRequestDto){
7280
Member memberEntity = memberRepository.findMemberById(id);
7381

74-
/*
75-
ScheduleDate newScheduleDate = ScheduleDate.builder()
76-
.time(scheduleCreateRequestDto.getScheduleDateDto().getTime())
77-
.date(scheduleCreateRequestDto.getScheduleDateDto().getDate())
78-
.build();
79-
80-
*/
81-
8282
//새로운 채팅 생성
8383
Schedule newSchedule = Schedule.builder()
8484
.info(scheduleCreateRequestDto.getInfo())
@@ -92,6 +92,24 @@ public Long createNewSchedule(Long id, ScheduleCreateRequestDto scheduleCreateRe
9292
.build();
9393

9494
scheduleRepository.save(newSchedule);
95+
96+
ScheduleCreateFastApiDto dto = ScheduleCreateFastApiDto.builder()
97+
.info(scheduleCreateRequestDto.getInfo())
98+
.location(scheduleCreateRequestDto.getLocation())
99+
.person(scheduleCreateRequestDto.getPerson())
100+
.date(scheduleCreateRequestDto.getDate())
101+
.category("카테고리 없음") //일단은 null 처리하기
102+
.member_id(newSchedule.getMember().getId())
103+
.schedule_id(newSchedule.getId())
104+
.build();
105+
106+
ResponseEntity<JsonNode> responseNode = fastApiScheduleApi.creatFastApiSchedule(dto);
107+
if (responseNode.getStatusCode() == HttpStatusCode.valueOf(200)) {
108+
log.info("Succeed to save data in Vector DB");
109+
} else {
110+
log.error("Failed to save data in Vector DB");
111+
}
112+
95113
return newSchedule.getId(); // 저장한 Chat 확인용
96114
}
97115
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package Ness.Backend.domain.schedule.dto;
2+
3+
import com.fasterxml.jackson.annotation.JsonFormat;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Builder;
6+
import lombok.Data;
7+
import lombok.NoArgsConstructor;
8+
9+
import java.time.ZonedDateTime;
10+
11+
@Data
12+
@NoArgsConstructor
13+
@AllArgsConstructor
14+
@Builder
15+
public class ScheduleCreateFastApiDto {
16+
17+
private Long schedule_id;
18+
19+
private Long member_id;
20+
21+
private String info;
22+
23+
private String location;
24+
25+
private String person;
26+
27+
@JsonFormat(shape = JsonFormat.Shape.STRING)
28+
private ZonedDateTime date;
29+
30+
private String category;
31+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package Ness.Backend.global.fastApi;
2+
3+
import Ness.Backend.domain.schedule.dto.ScheduleCreateFastApiDto;
4+
import com.fasterxml.jackson.databind.JsonNode;
5+
import org.springframework.cloud.openfeign.FeignClient;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.web.bind.annotation.PostMapping;
8+
9+
@FeignClient(
10+
name = "FastApiChat",
11+
url = "${spring.cloud.openfeign.client.config.fastapi.url}")
12+
public interface FastApiScheduleApi {
13+
@PostMapping(value = "/add_schedule")
14+
ResponseEntity<JsonNode> creatFastApiSchedule(ScheduleCreateFastApiDto scheduleCreateFastApiDto);
15+
}

0 commit comments

Comments
 (0)