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 + ) +}