Updated on 2026-08-14
This commit is contained in:
parent
11c0834815
commit
d27c57cd84
20 changed files with 279 additions and 93 deletions
|
|
@ -1,8 +1,10 @@
|
|||
package com.tangem.datasource.api.visa
|
||||
|
||||
import com.tangem.datasource.api.utils.ReadTimeout
|
||||
import com.tangem.datasource.api.visa.models.response.CardActivationRemoteStateResponse
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Header
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
interface TangemVisaApi {
|
||||
|
||||
|
|
@ -10,4 +12,10 @@ interface TangemVisaApi {
|
|||
suspend fun getRemoteActivationStatus(
|
||||
@Header("Authorization") authHeader: String,
|
||||
): CardActivationRemoteStateResponse
|
||||
|
||||
@ReadTimeout(duration = 20, TimeUnit.MINUTES)
|
||||
@GET("activation-status")
|
||||
suspend fun getRemoteActivationStatusLongPoll(
|
||||
@Header("Authorization") authHeader: String,
|
||||
): CardActivationRemoteStateResponse
|
||||
}
|
||||
|
|
@ -187,7 +187,7 @@ internal object NetworkModule {
|
|||
clientBuilder = {
|
||||
addInterceptor(
|
||||
NetworkLogsSaveInterceptor(appLogsStore),
|
||||
)
|
||||
).applyTimeoutAnnotations()
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -208,7 +208,7 @@ internal object NetworkModule {
|
|||
clientBuilder = {
|
||||
addInterceptor(
|
||||
NetworkLogsSaveInterceptor(appLogsStore),
|
||||
)
|
||||
).applyTimeoutAnnotations()
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,4 +7,6 @@ interface VisaAuthTokenStorage {
|
|||
suspend fun store(cardId: String, tokens: VisaAuthTokens)
|
||||
|
||||
suspend fun get(cardId: String): VisaAuthTokens?
|
||||
|
||||
fun remove(cardId: String)
|
||||
}
|
||||
|
|
@ -44,17 +44,13 @@ internal fun OkHttpClient.Builder.applyTimeoutAnnotations(): OkHttpClient.Builde
|
|||
val readTimeout = tag?.method()?.getAnnotation(ReadTimeout::class.java)
|
||||
val writeTimeout = tag?.method()?.getAnnotation(WriteTimeout::class.java)
|
||||
|
||||
chain
|
||||
.apply {
|
||||
connectionTimeout?.let { withConnectTimeout(timeout = it.duration, unit = it.unit) }
|
||||
}
|
||||
.apply {
|
||||
readTimeout?.let { withReadTimeout(timeout = it.duration, unit = it.unit) }
|
||||
}
|
||||
.apply {
|
||||
writeTimeout?.let { withWriteTimeout(timeout = it.duration, unit = it.unit) }
|
||||
}
|
||||
.proceed(request)
|
||||
chain.run {
|
||||
connectionTimeout?.let { withConnectTimeout(timeout = it.duration, unit = it.unit) } ?: this
|
||||
}.run {
|
||||
readTimeout?.let { withReadTimeout(timeout = it.duration, unit = it.unit) } ?: this
|
||||
}.run {
|
||||
writeTimeout?.let { withWriteTimeout(timeout = it.duration, unit = it.unit) } ?: this
|
||||
}.proceed(request)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue