fix: error handling for single member fetch
Signed-off-by: Infi <wingit@geist.ga>
This commit is contained in:
parent
083e1d52be
commit
f8ae7607a5
|
|
@ -71,6 +71,13 @@ suspend fun fetchMember(serverId: String, userId: String, pure: Boolean = false)
|
|||
headers.append(RevoltAPI.TOKEN_HEADER_NAME, RevoltAPI.sessionToken)
|
||||
}
|
||||
|
||||
try {
|
||||
val error = RevoltJson.decodeFromString(RevoltError.serializer(), response.bodyAsText())
|
||||
throw Error(error.type)
|
||||
} catch (e: SerializationException) {
|
||||
// Not an error
|
||||
}
|
||||
|
||||
val member = RevoltJson.decodeFromString(Member.serializer(), response.bodyAsText())
|
||||
|
||||
if (!pure) {
|
||||
|
|
|
|||
|
|
@ -274,7 +274,13 @@ class ChannelScreenViewModel : ViewModel() {
|
|||
if (it.channel != activeChannel?.id) return@onEach
|
||||
|
||||
addUserIfUnknown(it.author!!)
|
||||
activeChannel?.server?.let { s -> fetchMember(s, it.author) }
|
||||
activeChannel?.server?.let { s ->
|
||||
try {
|
||||
fetchMember(s, it.author)
|
||||
} catch (e: Exception) {
|
||||
Log.e("ChannelScreen", "Failed to fetch member", e)
|
||||
}
|
||||
}
|
||||
regroupMessages(listOf(it) + renderableMessages)
|
||||
ackNewest()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue