api: add support for pagination

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-09-23 15:27:10 +05:30
parent 93985ee02d
commit e7860e4f55
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
3 changed files with 4 additions and 3 deletions

View file

@ -37,7 +37,7 @@ class MainActivity : AppCompatActivity() {
val coroutineScope = rememberCoroutineScope() val coroutineScope = rememberCoroutineScope()
val posts = mutableStateListOf<LobstersPost>() val posts = mutableStateListOf<LobstersPost>()
coroutineScope.launch { coroutineScope.launch {
posts.addAll(apiClient.getHottestPosts()) posts.addAll(apiClient.getHottestPosts(1))
} }
LobstersApp(posts) LobstersApp(posts)
} }

View file

@ -2,8 +2,9 @@ package dev.msfjarvis.lobsters.api
import dev.msfjarvis.lobsters.model.LobstersPost import dev.msfjarvis.lobsters.model.LobstersPost
import retrofit2.http.GET import retrofit2.http.GET
import retrofit2.http.Query
interface LobstersApi { interface LobstersApi {
@GET("hottest.json") @GET("hottest.json")
suspend fun getHottestPosts(): List<LobstersPost> suspend fun getHottestPosts(@Query("page") page: Int): List<LobstersPost>
} }

View file

@ -27,7 +27,7 @@ class LobstersApiTest {
@Test @Test
fun `api gets correct number of items`() = runBlocking { fun `api gets correct number of items`() = runBlocking {
val posts = apiClient.getHottestPosts() val posts = apiClient.getHottestPosts(1)
assertEquals(25, posts.size) assertEquals(25, posts.size)
} }