From 32c30132b9d0ccf051a0b94cecc562f4a8209117 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 9 Jun 2026 23:30:11 +0900 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=EC=B1=84=ED=8C=85=EB=B0=A9=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20API=EC=99=80=20=EC=A0=80=EC=9E=A5=EC=86=8C?= =?UTF-8?q?=EB=A5=BC=20=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kr/co/vividnext/sodalive/di/AppDI.kt | 4 ++++ .../sodalive/v2/main/chat/data/ChatRoomApi.kt | 16 ++++++++++++++++ .../v2/main/chat/data/ChatRoomRepository.kt | 16 ++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomApi.kt create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomRepository.kt diff --git a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt index 746d701e..2660b35b 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/di/AppDI.kt @@ -177,6 +177,8 @@ import kr.co.vividnext.sodalive.user.find_password.FindPasswordViewModel import kr.co.vividnext.sodalive.user.login.LoginViewModel import kr.co.vividnext.sodalive.user.signup.SignUpViewModel import kr.co.vividnext.sodalive.v2.main.MainV2ViewModel +import kr.co.vividnext.sodalive.v2.main.chat.data.ChatRoomApi +import kr.co.vividnext.sodalive.v2.main.chat.data.ChatRoomRepository import kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingViewModel import kr.co.vividnext.sodalive.v2.main.home.HomeRecommendationViewModel import kr.co.vividnext.sodalive.v2.main.home.data.HomeCreatorRankingApi @@ -291,6 +293,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) { single { ApiBuilder().build(get(), SearchApi::class.java) } single { ApiBuilder().build(get(), PointStatusApi::class.java) } single { ApiBuilder().build(get(), HomeApi::class.java) } + single { ApiBuilder().build(get(), ChatRoomApi::class.java) } single { ApiBuilder().build(get(), HomeCreatorRankingApi::class.java) } single { ApiBuilder().build(get(), HomeRecommendationApi::class.java) } single { ApiBuilder().build(get(), CharacterApi::class.java) } @@ -441,6 +444,7 @@ class AppDI(private val context: Context, isDebugMode: Boolean) { factory { UserEventRepository(get()) } factory { PointStatusRepository(get()) } factory { HomeRepository(get()) } + factory { ChatRoomRepository(get()) } factory { HomeCreatorRankingRepository(get()) } factory { HomeRecommendationRepository(get()) } factory { CharacterTabRepository(get()) } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomApi.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomApi.kt new file mode 100644 index 00000000..164da946 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomApi.kt @@ -0,0 +1,16 @@ +package kr.co.vividnext.sodalive.v2.main.chat.data + +import io.reactivex.rxjava3.core.Single +import kr.co.vividnext.sodalive.common.ApiResponse +import retrofit2.http.GET +import retrofit2.http.Header +import retrofit2.http.Query + +interface ChatRoomApi { + @GET("/api/v2/chat/rooms") + fun getChatRooms( + @Header("Authorization") authHeader: String, + @Query("filter") filter: String, + @Query("cursor") cursor: String? + ): Single> +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomRepository.kt new file mode 100644 index 00000000..42748c1c --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/chat/data/ChatRoomRepository.kt @@ -0,0 +1,16 @@ +package kr.co.vividnext.sodalive.v2.main.chat.data + +import io.reactivex.rxjava3.core.Single +import kr.co.vividnext.sodalive.common.ApiResponse + +class ChatRoomRepository(private val api: ChatRoomApi) { + fun getChatRooms( + token: String, + filter: String, + cursor: String? + ): Single> = api.getChatRooms( + authHeader = token, + filter = filter, + cursor = cursor + ) +}