Updated on 2026-08-14

This commit is contained in:
Tangem 2023-12-19 20:29:07 +02:00
parent 8a840fe5f0
commit ba7038debc
3 changed files with 52 additions and 1 deletions

View file

@ -0,0 +1,49 @@
package com.tangem.datasource.di
import okhttp3.Interceptor
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.Response
import okhttp3.ResponseBody.Companion.toResponseBody
import timber.log.Timber
class StatusCodeInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val originalResponse = chain.proceed(chain.request())
if (shouldInterceptResponse(originalResponse)) {
Timber.e("StatusCodeInterceptor INTERCEPTED%s", originalResponse.request.url.toString())
val body = getBody().toResponseBody("application/json".toMediaTypeOrNull())
val code = getCode()
return originalResponse.newBuilder()
.code(code)
.body(body)
.build()
}
return originalResponse
}
private fun shouldInterceptResponse(response: Response): Boolean {
return response.request.url.toString().contains("exchange-quote")
// && response.request.url.toString().contains("changenow")
}
private fun getCode() : Int {
return 400
}
private fun getBody() : String {
return "\"error\": {\n" +
" \"code\": 2290,\n" +
" \"description\": \"Core: receivedDecimals is not equal to expressDecimals\",\n" +
" \"message\": \"Not valid\",\n" +
" \"receivedToDecimals\": 5,\n" +
" \"expressToDecimals\": 5\n" +
" }"
}
}

View file

@ -39,7 +39,7 @@ internal class ErrorsDataConverter(
receivedFromDecimals = requireNotNull(error.value?.receivedFromDecimals),
expressFromDecimals = requireNotNull(error.value?.expressFromDecimals),
)
else -> DataError.UnknownError
else -> DataError.UnknownErrorWithCode(error.code)
}
} catch (e: Exception) {
return DataError.UnknownError

View file

@ -30,6 +30,8 @@ sealed class DataError {
val expressFromDecimals: Int,
) : DataError()
data class UnknownErrorWithCode(override val code: Int) : DataError()
object UnknownError : DataError() {
override val code: Int = -1
}