api: add support for user profiles

(cherry picked from commit 78d3f4a54f4abc57ba99b06542a5eb58fd360670)
This commit is contained in:
Harsh Shandilya 2022-05-05 11:10:47 +05:30
parent 5b6e3dc3b9
commit d659d04bd4
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
4 changed files with 15 additions and 0 deletions

View file

@ -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"
}

View file

@ -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)
}
}

View file

@ -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)
}
}

View 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"}