diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewApi.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewApi.kt new file mode 100644 index 00000000..ae5142bf --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewApi.kt @@ -0,0 +1,17 @@ +package kr.co.vividnext.sodalive.v2.main.content.overview.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 ContentOverviewApi { + @GET("/api/v2/contents") + fun getContents( + @Header("Authorization") authHeader: String, + @Query("page") page: Int, + @Query("size") size: Int, + @Query("type") type: ContentOverviewType + ): Single> +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewModels.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewModels.kt new file mode 100644 index 00000000..41a8a3f0 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewModels.kt @@ -0,0 +1,31 @@ +package kr.co.vividnext.sodalive.v2.main.content.overview.data + +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep +data class ContentOverviewPageResponse( + @SerializedName("type") val type: ContentOverviewType, + @SerializedName("items") val items: List, + @SerializedName("page") val page: Int, + @SerializedName("size") val size: Int, + @SerializedName("hasNext") val hasNext: Boolean +) + +enum class ContentOverviewType { + NEW_AND_HOT_AUDIO, + FIRST_AUDIO_CONTENT +} + +@Keep +data class ContentOverviewItemResponse( + @SerializedName("contentId") val contentId: Long, + @SerializedName("title") val title: String, + @SerializedName("coverImage") val coverImage: String?, + @SerializedName("price") val price: Int, + @SerializedName("isAdult") val isAdult: Boolean, + @SerializedName("isPointAvailable") val isPointAvailable: Boolean, + @SerializedName("isFirstContent") val isFirstContent: Boolean, + @SerializedName("isOriginalSeries") val isOriginalSeries: Boolean, + @SerializedName("creatorNickname") val creatorNickname: String +) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewRepository.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewRepository.kt new file mode 100644 index 00000000..1de67a4b --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/overview/data/ContentOverviewRepository.kt @@ -0,0 +1,15 @@ +package kr.co.vividnext.sodalive.v2.main.content.overview.data + +class ContentOverviewRepository(private val api: ContentOverviewApi) { + fun getContents( + token: String, + page: Int, + size: Int, + type: ContentOverviewType + ) = api.getContents( + authHeader = token, + page = page, + size = size, + type = type + ) +}