Updated on 2026-08-14
This commit is contained in:
parent
ed0b07bc82
commit
f4422dd3fb
25 changed files with 274 additions and 115 deletions
|
|
@ -1,20 +1,17 @@
|
|||
package com.tangem.data.onramp
|
||||
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.data.onramp.converters.error.OnrampErrorConverter
|
||||
import com.tangem.datasource.api.common.response.ApiResponseError
|
||||
import com.tangem.domain.onramp.analytics.OnrampAnalyticsEvent
|
||||
import com.tangem.domain.onramp.model.error.OnrampError
|
||||
import com.tangem.domain.onramp.model.error.OnrampRedirectError
|
||||
import com.tangem.domain.onramp.repositories.OnrampErrorResolver
|
||||
|
||||
internal class DefaultOnrampErrorResolver(
|
||||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
private val onrampErrorConverter: OnrampErrorConverter,
|
||||
) : OnrampErrorResolver {
|
||||
|
||||
override fun resolve(throwable: Throwable): OnrampError {
|
||||
val error = when (throwable) {
|
||||
return when (throwable) {
|
||||
is ApiResponseError.HttpException -> {
|
||||
onrampErrorConverter.convert(throwable.errorBody.orEmpty())
|
||||
}
|
||||
|
|
@ -24,20 +21,5 @@ internal class DefaultOnrampErrorResolver(
|
|||
OnrampError.DomainError(throwable.message)
|
||||
}
|
||||
}
|
||||
|
||||
when (error) {
|
||||
is OnrampError.AmountError.TooBigError -> analyticsEventHandler.send(OnrampAnalyticsEvent.MaxAmountError)
|
||||
is OnrampError.AmountError.TooSmallError -> analyticsEventHandler.send(OnrampAnalyticsEvent.MinAmountError)
|
||||
is OnrampError.DataError -> analyticsEventHandler.send(
|
||||
OnrampAnalyticsEvent.Errors(
|
||||
tokenSymbol = "tokenSymbol",
|
||||
providerName = "providerName",
|
||||
errorCode = error.code,
|
||||
),
|
||||
)
|
||||
else -> { /* no-op */
|
||||
}
|
||||
}
|
||||
return error
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package com.tangem.data.onramp.di
|
||||
|
||||
import com.squareup.moshi.Moshi
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.data.onramp.DefaultOnrampErrorResolver
|
||||
import com.tangem.data.onramp.DefaultOnrampRepository
|
||||
import com.tangem.data.onramp.DefaultOnrampTransactionRepository
|
||||
|
|
@ -72,13 +71,9 @@ internal object OnrampDataModule {
|
|||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOnrampErrorResolver(
|
||||
@NetworkMoshi moshi: Moshi,
|
||||
analyticsEventHandler: AnalyticsEventHandler,
|
||||
): OnrampErrorResolver {
|
||||
fun provideOnrampErrorResolver(@NetworkMoshi moshi: Moshi): OnrampErrorResolver {
|
||||
val jsonAdapter = moshi.adapter(ExpressErrorResponse::class.java)
|
||||
return DefaultOnrampErrorResolver(
|
||||
analyticsEventHandler,
|
||||
OnrampErrorConverter(jsonAdapter),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue