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)
|
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())
|
val member = RevoltJson.decodeFromString(Member.serializer(), response.bodyAsText())
|
||||||
|
|
||||||
if (!pure) {
|
if (!pure) {
|
||||||
|
|
|
||||||
|
|
@ -274,7 +274,13 @@ class ChannelScreenViewModel : ViewModel() {
|
||||||
if (it.channel != activeChannel?.id) return@onEach
|
if (it.channel != activeChannel?.id) return@onEach
|
||||||
|
|
||||||
addUserIfUnknown(it.author!!)
|
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)
|
regroupMessages(listOf(it) + renderableMessages)
|
||||||
ackNewest()
|
ackNewest()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue