From 6e04a10a3b782e2202b6c0b19daeb1af90e9d284 Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 26 Jun 2026 23:42:55 +0900 Subject: [PATCH] =?UTF-8?q?feat(live):=20=EC=98=A8=EC=97=90=EC=96=B4=20?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20API=EB=A5=BC=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/live/onair/data/HomeOnAirLiveApi.kt | 15 +++++++++++++ .../v2/live/onair/data/HomeOnAirLiveModels.kt | 22 +++++++++++++++++++ .../onair/data/HomeOnAirLiveRepository.kt | 10 +++++++++ 3 files changed, 47 insertions(+) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveApi.kt create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveModels.kt create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveRepository.kt diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveApi.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveApi.kt new file mode 100644 index 00000000..f6998b9d --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveApi.kt @@ -0,0 +1,15 @@ +package kr.co.vividnext.sodalive.v2.live.onair.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 HomeOnAirLiveApi { + @GET("/api/v2/home/on-air-lives") + fun getOnAirLives( + @Header("Authorization") authHeader: String?, + @Query("page") page: Int + ): Single> +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveModels.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveModels.kt new file mode 100644 index 00000000..15fe3aa2 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveModels.kt @@ -0,0 +1,22 @@ +package kr.co.vividnext.sodalive.v2.live.onair.data + +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep +data class HomeOnAirLivePageResponse( + @SerializedName("items") val items: List, + @SerializedName("page") val page: Int, + @SerializedName("size") val size: Int, + @SerializedName("hasNext") val hasNext: Boolean +) + +@Keep +data class HomeOnAirLiveResponse( + @SerializedName("roomId") val roomId: Long, + @SerializedName("creatorNickname") val creatorNickname: String, + @SerializedName("creatorProfileImage") val creatorProfileImage: String, + @SerializedName("title") val title: String, + @SerializedName("price") val price: Int, + @SerializedName("beginDateTimeUtc") val beginDateTimeUtc: String +) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveRepository.kt new file mode 100644 index 00000000..21fb3a4d --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/live/onair/data/HomeOnAirLiveRepository.kt @@ -0,0 +1,10 @@ +package kr.co.vividnext.sodalive.v2.live.onair.data + +class HomeOnAirLiveRepository( + private val api: HomeOnAirLiveApi +) { + fun getOnAirLives(authHeader: String?, page: Int) = api.getOnAirLives( + authHeader = authHeader, + page = page + ) +}