refactor: centralize shared error handling

This commit is contained in:
Codex
2026-05-14 17:48:56 +03:00
parent cb653eddc2
commit 22d13fcbe5
8 changed files with 34 additions and 163 deletions
@@ -1,24 +1,18 @@
package dev.meloda.fast.data
import androidx.core.net.toUri
import okhttp3.Interceptor
import okhttp3.Response
import java.net.URLEncoder
class AccessTokenInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val builder = chain.request().url.newBuilder()
val request = chain.request()
val urlBuilder = request.url.newBuilder()
val uri = builder.build().toUri().toString().toUri()
if (uri.getQueryParameter("access_token") == null) {
builder.addQueryParameter(
"access_token",
URLEncoder.encode(UserConfig.accessToken, "utf-8")
)
if (request.url.queryParameter("access_token") == null) {
urlBuilder.addQueryParameter("access_token", UserConfig.accessToken)
}
return chain.proceed(chain.request().newBuilder().apply { url(builder.build()) }.build())
return chain.proceed(request.newBuilder().url(urlBuilder.build()).build())
}
}
@@ -1,6 +1,5 @@
package dev.meloda.fast.data
import dev.meloda.fast.data.UserConfig.userId
import dev.meloda.fast.model.api.domain.VkContactDomain
import dev.meloda.fast.model.api.domain.VkConvo
import dev.meloda.fast.model.api.domain.VkGroupDomain
@@ -38,7 +37,15 @@ object VkMemoryCache {
contacts.forEach { contact -> VkMemoryCache.contacts[contact.userId] = contact }
}
operator fun set(userid: Long, user: VkUser) {
fun clear() {
users.clear()
groups.clear()
messages.clear()
convos.clear()
contacts.clear()
}
operator fun set(userId: Long, user: VkUser) {
users[userId] = user
}