Updated on 2026-08-14
This commit is contained in:
parent
82dcb31881
commit
a079caac11
5 changed files with 36 additions and 1 deletions
|
|
@ -122,6 +122,25 @@ internal class DefaultVisaAuthRepository @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun exchangeAccessToken(tokens: VisaAuthTokens): Either<VisaApiError, VisaAuthTokens> {
|
||||
return request {
|
||||
visaAuthApi.exchangeAccessToken(
|
||||
ExchangeAccessTokenRequest(
|
||||
accessToken = tokens.accessToken,
|
||||
refreshToken = tokens.refreshToken.value,
|
||||
),
|
||||
).getOrThrow()
|
||||
}.map { response ->
|
||||
VisaAuthTokens(
|
||||
accessToken = response.result.accessToken,
|
||||
refreshToken = VisaAuthTokens.RefreshToken(
|
||||
value = response.result.refreshToken,
|
||||
authType = VisaAuthTokens.RefreshToken.Type.CardWallet,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun <T : Any> request(requestBlock: suspend () -> T): Either<VisaApiError, T> {
|
||||
return runCatching {
|
||||
Either.Right(requestBlock())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue