11package com.back.koreaTravelGuide.domain.ai.aiChat.controller
22
3+ import com.back.koreaTravelGuide.common.ApiResponse
34import com.back.koreaTravelGuide.domain.ai.aiChat.dto.AiChatRequest
45import com.back.koreaTravelGuide.domain.ai.aiChat.dto.AiChatResponse
56import com.back.koreaTravelGuide.domain.ai.aiChat.dto.SessionMessagesResponse
67import com.back.koreaTravelGuide.domain.ai.aiChat.dto.SessionsResponse
78import com.back.koreaTravelGuide.domain.ai.aiChat.dto.UpdateSessionTitleRequest
89import com.back.koreaTravelGuide.domain.ai.aiChat.dto.UpdateSessionTitleResponse
910import com.back.koreaTravelGuide.domain.ai.aiChat.service.AiChatService
11+ import org.springframework.http.ResponseEntity
1012import org.springframework.web.bind.annotation.DeleteMapping
1113import org.springframework.web.bind.annotation.GetMapping
1214import org.springframework.web.bind.annotation.PatchMapping
@@ -25,61 +27,71 @@ class AiChatController(
2527 @GetMapping(" /sessions" )
2628 fun getSessions (
2729 @RequestParam userId : Long ,
28- ): List <SessionsResponse > {
29- return aiChatService.getSessions(userId).map {
30- SessionsResponse (it.id!! , it.sessionTitle)
31- }
30+ ): ResponseEntity <ApiResponse <List <SessionsResponse >>> {
31+ val sessions =
32+ aiChatService.getSessions(userId).map {
33+ SessionsResponse (it.id!! , it.sessionTitle)
34+ }
35+ return ResponseEntity .ok(ApiResponse (" 채팅방 목록을 성공적으로 조회했습니다." , sessions))
3236 }
3337
3438 @PostMapping(" /sessions" )
3539 fun createSession (
3640 @RequestParam userId : Long ,
37- ): SessionsResponse {
41+ ): ResponseEntity < ApiResponse < SessionsResponse >> {
3842 val session = aiChatService.createSession(userId)
39- return SessionsResponse (session.id!! , session.sessionTitle)
43+ val response = SessionsResponse (session.id!! , session.sessionTitle)
44+ return ResponseEntity .ok(ApiResponse (" 채팅방이 성공적으로 생성되었습니다." , response))
4045 }
4146
4247 @DeleteMapping(" /sessions/{sessionId}" )
4348 fun deleteSession (
4449 @PathVariable sessionId : Long ,
4550 @RequestParam userId : Long ,
46- ) {
51+ ): ResponseEntity < ApiResponse < Unit >> {
4752 aiChatService.deleteSession(sessionId, userId)
53+ return ResponseEntity .ok(ApiResponse (" 채팅방이 성공적으로 삭제되었습니다." ))
4854 }
4955
5056 @GetMapping(" /sessions/{sessionId}/messages" )
5157 fun getSessionMessages (
5258 @PathVariable sessionId : Long ,
5359 @RequestParam userId : Long ,
54- ): List <SessionMessagesResponse > {
60+ ): ResponseEntity < ApiResponse < List <SessionMessagesResponse >> > {
5561 val messages = aiChatService.getSessionMessages(sessionId, userId)
56- return messages.map {
57- SessionMessagesResponse (it.content, it.senderType)
58- }
62+ val response =
63+ messages.map {
64+ SessionMessagesResponse (it.content, it.senderType)
65+ }
66+ return ResponseEntity .ok(ApiResponse (" 채팅 메시지를 성공적으로 조회했습니다." , response))
5967 }
6068
6169 @PostMapping(" /sessions/{sessionId}/messages" )
6270 fun sendMessage (
6371 @PathVariable sessionId : Long ,
6472 @RequestParam userId : Long ,
6573 @RequestBody request : AiChatRequest ,
66- ): AiChatResponse {
74+ ): ResponseEntity < ApiResponse < AiChatResponse >> {
6775 val (userMessage, aiMessage) = aiChatService.sendMessage(sessionId, userId, request.message)
68- return AiChatResponse (
69- userMessage = userMessage.content,
70- aiMessage = aiMessage.content,
71- )
76+ val response =
77+ AiChatResponse (
78+ userMessage = userMessage.content,
79+ aiMessage = aiMessage.content,
80+ )
81+ return ResponseEntity .ok(ApiResponse (" 메시지가 성공적으로 전송되었습니다." , response))
7282 }
7383
7484 @PatchMapping(" /sessions/{sessionId}/title" )
7585 fun updateSessionTitle (
7686 @PathVariable sessionId : Long ,
7787 @RequestParam userId : Long ,
7888 @RequestBody request : UpdateSessionTitleRequest ,
79- ): UpdateSessionTitleResponse {
89+ ): ResponseEntity < ApiResponse < UpdateSessionTitleResponse >> {
8090 val updatedSession = aiChatService.updateSessionTitle(sessionId, userId, request.newTitle)
81- return UpdateSessionTitleResponse (
82- newTitle = updatedSession.sessionTitle,
83- )
91+ val response =
92+ UpdateSessionTitleResponse (
93+ newTitle = updatedSession.sessionTitle,
94+ )
95+ return ResponseEntity .ok(ApiResponse (" 채팅방 제목이 성공적으로 수정되었습니다." , response))
8496 }
8597}
0 commit comments