mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 10:37:05 +05:30
api: add support for user profiles
(cherry picked from commit 78d3f4a54f4abc57ba99b06542a5eb58fd360670)
This commit is contained in:
parent
5b6e3dc3b9
commit
d659d04bd4
4 changed files with 15 additions and 0 deletions
|
@ -2,6 +2,7 @@ package dev.msfjarvis.claw.api
|
|||
|
||||
import dev.msfjarvis.claw.model.LobstersPost
|
||||
import dev.msfjarvis.claw.model.LobstersPostDetails
|
||||
import dev.msfjarvis.claw.model.User
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
@ -16,6 +17,8 @@ interface LobstersApi {
|
|||
@GET("s/{postId}.json")
|
||||
suspend fun getPostDetails(@Path("postId") postId: String): LobstersPostDetails
|
||||
|
||||
@GET("u/{username}.json") suspend fun getUser(@Path("username") username: String): User
|
||||
|
||||
companion object {
|
||||
const val BASE_URL = "https://lobste.rs"
|
||||
}
|
||||
|
|
|
@ -29,4 +29,10 @@ class ApiTest {
|
|||
val postDetails = api.getPostDetails("d9ucpe")
|
||||
assertEquals(7, postDetails.comments.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `get user details`() = runBlocking {
|
||||
val user = api.getUser("msfjarvis")
|
||||
assertEquals("msfjarvis", user.username)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ class FakeApi(private val delegate: BehaviorDelegate<LobstersApi>) : LobstersApi
|
|||
private val hottest: List<LobstersPost> = json.decodeFromString(getJson("hottest.json"))
|
||||
private val postDetails: LobstersPostDetails =
|
||||
json.decodeFromString(getJson("post_details_d9ucpe.json"))
|
||||
private val user: User = json.decodeFromString(getJson("msfjarvis.json"))
|
||||
|
||||
override suspend fun getHottestPosts(page: Int): List<LobstersPost> {
|
||||
return delegate.returningResponse(hottest).getHottestPosts(page)
|
||||
|
@ -24,4 +25,8 @@ class FakeApi(private val delegate: BehaviorDelegate<LobstersApi>) : LobstersApi
|
|||
override suspend fun getPostDetails(postId: String): LobstersPostDetails {
|
||||
return delegate.returningResponse(postDetails).getPostDetails(postId)
|
||||
}
|
||||
|
||||
override suspend fun getUser(username: String): User {
|
||||
return delegate.returningResponse(user).getUser(username)
|
||||
}
|
||||
}
|
||||
|
|
1
api/src/test/resources/msfjarvis.json
Normal file
1
api/src/test/resources/msfjarvis.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"username":"msfjarvis","created_at":"2020-04-24T11:41:56.000-05:00","is_admin":false,"about":"Android and Kotlin developer\r\n","is_moderator":false,"karma":574,"avatar_url":"/avatars/msfjarvis-100.png","invited_by_user":"Amolith","github_username":"msfjarvis","twitter_username":"msfjarvis"}
|
Loading…
Add table
Add a link
Reference in a new issue