@@ -4,6 +4,7 @@ import androidx.paging.PagingSource
44import androidx.paging.PagingState
55import com.wafflestudio.siksha2.models.Comment
66import com.wafflestudio.siksha2.network.SikshaApi
7+ import com.wafflestudio.siksha2.network.result.NetworkResult
78
89class CommentPagingSource (
910 val postId : Long ,
@@ -12,12 +13,16 @@ class CommentPagingSource(
1213
1314 override suspend fun load (params : LoadParams <Long >): LoadResult <Long , Comment > {
1415 val page = params.key ? : STARTING_KEY
15- val response = api.getComments(postId, page, params.loadSize)
16- return LoadResult .Page (
17- data = response.result.map { it.toComment() },
18- prevKey = if (page == STARTING_KEY ) null else page - 1 ,
19- nextKey = if (response.hasNext) page + (params.loadSize / ITEMS_PER_PAGE ) else null
20- )
16+ return when (val response = api.getComments(postId, page, params.loadSize)) {
17+ is NetworkResult .Success -> {
18+ LoadResult .Page (
19+ data = response.body.result.map { it.toComment() },
20+ prevKey = if (page == STARTING_KEY ) null else page - 1 ,
21+ nextKey = if (response.body.hasNext) page + (params.loadSize / ITEMS_PER_PAGE ) else null
22+ )
23+ }
24+ else -> LoadResult .Error (RuntimeException (" " ))
25+ }
2126 }
2227
2328 override fun getRefreshKey (state : PagingState <Long , Comment >): Long? {
0 commit comments