diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt index f3cc288b25..2c1dcaea5b 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/ApiConfig.kt @@ -24,7 +24,7 @@ sealed class ApiConfig { Express, TangemTech, StakeKit, - TangemVisa, + TangemPay, Attestation, BlockAid, } @@ -34,7 +34,7 @@ sealed class ApiConfig { is Express -> ID.Express is TangemTech -> ID.TangemTech is StakeKit -> ID.StakeKit - is TangemVisa -> ID.TangemVisa + is TangemPay -> ID.TangemPay is Attestation -> ID.Attestation is BlockAid -> ID.BlockAid } diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemVisa.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemPay.kt similarity index 97% rename from core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemVisa.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemPay.kt index b46a599b2d..b45492d87b 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemVisa.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/config/TangemPay.kt @@ -3,7 +3,7 @@ package com.tangem.datasource.api.common.config import com.tangem.utils.ProviderSuspend import com.tangem.utils.version.AppVersionProvider -internal class TangemVisa( +internal class TangemPay( private val appVersionProvider: AppVersionProvider, ) : ApiConfig() { diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/TangemVisaApi.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/TangemPayApi.kt similarity index 70% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/TangemVisaApi.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/TangemPayApi.kt index 5b2755a78a..2749826753 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/TangemVisaApi.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/TangemPayApi.kt @@ -1,27 +1,27 @@ -package com.tangem.datasource.api.visa +package com.tangem.datasource.api.pay import com.tangem.datasource.api.common.response.ApiResponse -import com.tangem.datasource.api.visa.models.request.ActivationByCardWalletRequest -import com.tangem.datasource.api.visa.models.request.ActivationByCustomerWalletRequest -import com.tangem.datasource.api.visa.models.request.ActivationStatusRequest -import com.tangem.datasource.api.visa.models.request.ExchangeAccessTokenRequest -import com.tangem.datasource.api.visa.models.request.GenerateNoneByCardIdRequest -import com.tangem.datasource.api.visa.models.request.GenerateNoneByCardWalletRequest -import com.tangem.datasource.api.visa.models.request.GetAccessTokenByCardIdRequest -import com.tangem.datasource.api.visa.models.request.GetAccessTokenByCardWalletRequest -import com.tangem.datasource.api.visa.models.request.GetCardWalletAcceptanceRequest -import com.tangem.datasource.api.visa.models.request.GetCustomerWalletAcceptanceRequest -import com.tangem.datasource.api.visa.models.request.RefreshTokenByCardIdRequest -import com.tangem.datasource.api.visa.models.request.RefreshTokenByCardWalletRequest -import com.tangem.datasource.api.visa.models.request.SetPinCodeRequest -import com.tangem.datasource.api.visa.models.response.* +import com.tangem.datasource.api.pay.models.request.ActivationByCardWalletRequest +import com.tangem.datasource.api.pay.models.request.ActivationByCustomerWalletRequest +import com.tangem.datasource.api.pay.models.request.ActivationStatusRequest +import com.tangem.datasource.api.pay.models.request.ExchangeAccessTokenRequest +import com.tangem.datasource.api.pay.models.request.GenerateNoneByCardIdRequest +import com.tangem.datasource.api.pay.models.request.GenerateNoneByCardWalletRequest +import com.tangem.datasource.api.pay.models.request.GetAccessTokenByCardIdRequest +import com.tangem.datasource.api.pay.models.request.GetAccessTokenByCardWalletRequest +import com.tangem.datasource.api.pay.models.request.GetCardWalletAcceptanceRequest +import com.tangem.datasource.api.pay.models.request.GetCustomerWalletAcceptanceRequest +import com.tangem.datasource.api.pay.models.request.RefreshTokenByCardIdRequest +import com.tangem.datasource.api.pay.models.request.RefreshTokenByCardWalletRequest +import com.tangem.datasource.api.pay.models.request.SetPinCodeRequest +import com.tangem.datasource.api.pay.models.response.* import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.Header import retrofit2.http.POST import retrofit2.http.Query -interface TangemVisaApi { +interface TangemPayApi { // region: auth @@ -104,4 +104,7 @@ interface TangemVisaApi { @Query("limit") limit: Int, @Query("offset") offset: Int, ): ApiResponse + + @GET("v1/customer/kyc") + suspend fun getKycAccess(@Header("Authorization") authHeader: String): ApiResponse } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationByCardWalletRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationByCardWalletRequest.kt similarity index 95% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationByCardWalletRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationByCardWalletRequest.kt index c16198f0c6..a5dafd7b32 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationByCardWalletRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationByCardWalletRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationByCustomerWalletRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationByCustomerWalletRequest.kt similarity index 90% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationByCustomerWalletRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationByCustomerWalletRequest.kt index ace2090603..731188d92a 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationByCustomerWalletRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationByCustomerWalletRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationStatusRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationStatusRequest.kt similarity index 82% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationStatusRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationStatusRequest.kt index 7ce0614abc..9f3e017e55 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ActivationStatusRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ActivationStatusRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ExchangeAccessTokenRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ExchangeAccessTokenRequest.kt similarity index 82% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ExchangeAccessTokenRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ExchangeAccessTokenRequest.kt index 63b9fe43d8..164d71fa5c 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/ExchangeAccessTokenRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/ExchangeAccessTokenRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GenerateNoneByCardIdRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GenerateNoneByCardIdRequest.kt similarity index 85% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GenerateNoneByCardIdRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GenerateNoneByCardIdRequest.kt index d3aa5eaa50..7ab945b8f8 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GenerateNoneByCardIdRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GenerateNoneByCardIdRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GenerateNoneByCardWalletRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GenerateNoneByCardWalletRequest.kt similarity index 86% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GenerateNoneByCardWalletRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GenerateNoneByCardWalletRequest.kt index 69c2f7a7d5..95d2f8f9bf 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GenerateNoneByCardWalletRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GenerateNoneByCardWalletRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetAccessTokenByCardIdRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetAccessTokenByCardIdRequest.kt similarity index 86% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetAccessTokenByCardIdRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetAccessTokenByCardIdRequest.kt index c212c81412..380284bab7 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetAccessTokenByCardIdRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetAccessTokenByCardIdRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetAccessTokenByCardWalletRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetAccessTokenByCardWalletRequest.kt similarity index 87% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetAccessTokenByCardWalletRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetAccessTokenByCardWalletRequest.kt index df5d0c3935..50fc683c9b 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetAccessTokenByCardWalletRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetAccessTokenByCardWalletRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetCardWalletAcceptanceRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetCardWalletAcceptanceRequest.kt similarity index 86% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetCardWalletAcceptanceRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetCardWalletAcceptanceRequest.kt index dd084fa326..de4cec941b 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetCardWalletAcceptanceRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetCardWalletAcceptanceRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetCustomerWalletAcceptanceRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetCustomerWalletAcceptanceRequest.kt similarity index 87% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetCustomerWalletAcceptanceRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetCustomerWalletAcceptanceRequest.kt index 3948fc43b3..7ff5c16337 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/GetCustomerWalletAcceptanceRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/GetCustomerWalletAcceptanceRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/RefreshTokenByCardIdRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/RefreshTokenByCardIdRequest.kt similarity index 83% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/RefreshTokenByCardIdRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/RefreshTokenByCardIdRequest.kt index f94a59a280..50653c8f79 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/RefreshTokenByCardIdRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/RefreshTokenByCardIdRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/RefreshTokenByCardWalletRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/RefreshTokenByCardWalletRequest.kt similarity index 83% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/RefreshTokenByCardWalletRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/RefreshTokenByCardWalletRequest.kt index 108469e1b6..d21bc53edf 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/RefreshTokenByCardWalletRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/RefreshTokenByCardWalletRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/SetPinCodeRequest.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/SetPinCodeRequest.kt similarity index 85% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/SetPinCodeRequest.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/SetPinCodeRequest.kt index 69e1a5ac08..2266910591 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/request/SetPinCodeRequest.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/request/SetPinCodeRequest.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.request +package com.tangem.datasource.api.pay.models.request import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/CardActivationRemoteStateResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/CardActivationRemoteStateResponse.kt similarity index 93% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/CardActivationRemoteStateResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/CardActivationRemoteStateResponse.kt index a34a31a366..ae9c701b06 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/CardActivationRemoteStateResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/CardActivationRemoteStateResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/GenerateNonceResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/GenerateNonceResponse.kt similarity index 86% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/GenerateNonceResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/GenerateNonceResponse.kt index 9a79a457b8..958580bc5e 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/GenerateNonceResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/GenerateNonceResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/JWTResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/JWTResponse.kt similarity index 93% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/JWTResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/JWTResponse.kt index 0380074d02..c28a882ae9 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/JWTResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/JWTResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/KycAccessInfoResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/KycAccessInfoResponse.kt new file mode 100644 index 0000000000..dea8079161 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/KycAccessInfoResponse.kt @@ -0,0 +1,15 @@ +package com.tangem.datasource.api.pay.models.response + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class KycAccessInfoResponse( + @Json(name = "result") val result: Result, +) { + @JsonClass(generateAdapter = true) + data class Result( + @Json(name = "token") val token: String, + @Json(name = "locale") val locale: String, + ) +} \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaCustomerInfo.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaCustomerInfo.kt similarity index 89% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaCustomerInfo.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaCustomerInfo.kt index 70d5f6ac94..b6a227f62f 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaCustomerInfo.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaCustomerInfo.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaDataToSignResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaDataToSignResponse.kt similarity index 84% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaDataToSignResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaDataToSignResponse.kt index a19d3e7ca4..a35c99ab59 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaDataToSignResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaDataToSignResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaErrorResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaErrorResponse.kt similarity index 84% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaErrorResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaErrorResponse.kt index 49a5050d0c..b211405000 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaErrorResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaErrorResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaTxHistoryResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaTxHistoryResponse.kt similarity index 98% rename from core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaTxHistoryResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaTxHistoryResponse.kt index 7c4d7d0a22..aea17cc4c1 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/visa/models/response/VisaTxHistoryResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/pay/models/response/VisaTxHistoryResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.visa.models.response +package com.tangem.datasource.api.pay.models.response import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt index 8afffb0a2a..b1761922d3 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/ApiConfigsModule.kt @@ -53,7 +53,7 @@ internal object ApiConfigsModule { @Provides @IntoSet - fun provideTangemVisaConfig(appVersionProvider: AppVersionProvider): ApiConfig = TangemVisa(appVersionProvider) + fun provideTangemVisaConfig(appVersionProvider: AppVersionProvider): ApiConfig = TangemPay(appVersionProvider) @Provides @IntoSet diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt index 1110e9f745..4122660756 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt @@ -17,7 +17,7 @@ import com.tangem.datasource.api.onramp.OnrampApi import com.tangem.datasource.api.stakekit.StakeKitApi import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.api.tangemTech.TangemTechApiV2 -import com.tangem.datasource.api.visa.TangemVisaApi +import com.tangem.datasource.api.pay.TangemPayApi import com.tangem.datasource.local.logs.AppLogsStore import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.utils.* @@ -206,9 +206,9 @@ internal object NetworkModule { analyticsErrorHandler: AnalyticsErrorHandler, apiConfigsManager: ApiConfigsManager, appLogsStore: AppLogsStore, - ): TangemVisaApi { - return createApi( - id = ApiConfig.ID.TangemVisa, + ): TangemPayApi { + return createApi( + id = ApiConfig.ID.TangemPay, moshi = moshi, context = context, apiConfigsManager = apiConfigsManager, diff --git a/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt b/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt index 4570f390fc..fe329835cd 100644 --- a/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt +++ b/core/datasource/src/test/kotlin/com/tangem/datasource/api/common/config/managers/ProdApiConfigsManagerTest.kt @@ -37,7 +37,7 @@ private val API_CONFIGS = setOf( Express(configManager, expressAuthProvider, appVersionProvider, appInfoProvider), TangemTech(appVersionProvider, appAuthProvider, appInfoProvider), StakeKit(stakeKitAuthProvider), - TangemVisa(appVersionProvider), + TangemPay(appVersionProvider), ) /** @@ -88,7 +88,7 @@ internal class ProdApiConfigsManagerTest(private val model: Model) { is Express -> createExpressModel() is TangemTech -> createTangemTechModel() is StakeKit -> createStakeKitModel() - is TangemVisa -> createVisaModel() + is TangemPay -> createVisaModel() is Attestation -> createAttestationModel() is BlockAid -> createBlockAidSdkModel() } @@ -182,7 +182,7 @@ internal class ProdApiConfigsManagerTest(private val model: Model) { private fun createVisaModel(): Model { return Model( - id = ApiConfig.ID.TangemVisa, + id = ApiConfig.ID.TangemPay, expected = ApiEnvironmentConfig( environment = ApiEnvironment.DEV, baseUrl = "[REDACTED_ENV_URL]", diff --git a/data/visa/build.gradle.kts b/data/visa/build.gradle.kts index f8999494d2..6740dd9dde 100644 --- a/data/visa/build.gradle.kts +++ b/data/visa/build.gradle.kts @@ -16,6 +16,7 @@ dependencies { /** Project - Data */ implementation(projects.core.datasource) + implementation(projects.core.error) implementation(projects.data.common) /** Project - Domain */ diff --git a/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultKycRepository.kt b/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultKycRepository.kt new file mode 100644 index 0000000000..8df8da505d --- /dev/null +++ b/data/visa/src/main/kotlin/com/tangem/data/pay/DefaultKycRepository.kt @@ -0,0 +1,70 @@ +package com.tangem.data.pay + +import arrow.core.Either +import com.squareup.moshi.Moshi +import com.tangem.core.error.UniversalError +import com.tangem.datasource.api.common.response.ApiResponseError +import com.tangem.datasource.api.common.response.getOrThrow +import com.tangem.datasource.api.pay.TangemPayApi +import com.tangem.datasource.api.pay.models.response.VisaErrorResponseJsonAdapter +import com.tangem.datasource.di.NetworkMoshi +import com.tangem.domain.pay.KycStartInfo +import com.tangem.domain.pay.repository.KycRepository +import com.tangem.domain.visa.error.VisaApiError +import com.tangem.domain.wallets.models.UserWalletId +import com.tangem.utils.coroutines.CoroutineDispatcherProvider +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import kotlinx.coroutines.withContext + +@Suppress("UnusedPrivateMember") +class DefaultKycRepository @AssistedInject constructor( + @Assisted userWalletId: UserWalletId, + @NetworkMoshi moshi: Moshi, + private val tangemPayApi: TangemPayApi, + private val dispatcherProvider: CoroutineDispatcherProvider, +) : KycRepository { + + private val visaErrorAdapter = VisaErrorResponseJsonAdapter(moshi) + + override suspend fun getKycStartInfo(): Either = withContext(dispatcherProvider.io) { + val authTokenForSpecificWallet = "get from userWalletId" + + request { + tangemPayApi.getKycAccess( + authHeader = authTokenForSpecificWallet, + ).getOrThrow().result + }.map { + KycStartInfo( + token = it.token, + locale = it.locale, + ) + } + } + + private suspend fun request(requestBlock: suspend () -> T): Either { + return runCatching { + Either.Right(requestBlock()) + }.getOrElse { responseError -> + if (responseError is ApiResponseError.HttpException && + responseError.errorBody != null + ) { + return runCatching { + visaErrorAdapter.fromJson(responseError.errorBody!!)?.error?.code ?: responseError.code.numericCode + }.map { + Either.Left(VisaApiError.fromBackendError(it)) + }.getOrElse { + Either.Left(VisaApiError.UnknownWithoutCode) + } + } + + return Either.Left(VisaApiError.UnknownWithoutCode) + } + } + + @AssistedFactory + interface Factory : KycRepository.Factory { + override fun create(userWalletId: UserWalletId): DefaultKycRepository + } +} \ No newline at end of file diff --git a/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt b/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt new file mode 100644 index 0000000000..d0de7d5c31 --- /dev/null +++ b/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt @@ -0,0 +1,18 @@ +package com.tangem.data.pay.di + +import com.tangem.data.pay.DefaultKycRepository +import com.tangem.domain.pay.repository.KycRepository +import dagger.Binds +import dagger.Module +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +internal interface TangemPayDataModule { + + @Binds + @Singleton + fun bindKycRepositoryFactory(factory: DefaultKycRepository.Factory): KycRepository.Factory +} \ No newline at end of file diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaActivationRepository.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaActivationRepository.kt index 40c5d49fe6..8d10a750ff 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaActivationRepository.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaActivationRepository.kt @@ -10,9 +10,9 @@ import com.tangem.datasource.api.common.config.ApiEnvironment import com.tangem.datasource.api.common.config.managers.ApiConfigsManager import com.tangem.datasource.api.common.response.ApiResponseError import com.tangem.datasource.api.common.response.getOrThrow -import com.tangem.datasource.api.visa.TangemVisaApi -import com.tangem.datasource.api.visa.models.request.* -import com.tangem.datasource.api.visa.models.response.VisaErrorResponseJsonAdapter +import com.tangem.datasource.api.pay.TangemPayApi +import com.tangem.datasource.api.pay.models.request.* +import com.tangem.datasource.api.pay.models.response.VisaErrorResponseJsonAdapter import com.tangem.datasource.di.NetworkMoshi import com.tangem.datasource.local.visa.VisaAuthTokenStorage import com.tangem.domain.visa.error.VisaApiError @@ -29,7 +29,7 @@ import kotlinx.coroutines.withContext internal class DefaultVisaActivationRepository @AssistedInject constructor( @Assisted private val visaCardId: VisaCardId, @NetworkMoshi private val moshi: Moshi, - private val visaApi: TangemVisaApi, + private val visaApi: TangemPayApi, private val dispatcherProvider: CoroutineDispatcherProvider, private val visaAuthTokenStorage: VisaAuthTokenStorage, private val visaAuthRepository: VisaAuthRepository, @@ -162,7 +162,7 @@ internal class DefaultVisaActivationRepository @AssistedInject constructor( } override suspend fun getPinCodeRsaEncryptionPublicKey(): String { - val env = apiConfigsManager.getEnvironmentConfig(ApiConfig.ID.TangemVisa).environment + val env = apiConfigsManager.getEnvironmentConfig(ApiConfig.ID.TangemPay).environment val rsaPublicKey = visaLibLoader.getOrCreateConfig().rsaPublicKey return when (env) { ApiEnvironment.DEV, diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaAuthRepository.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaAuthRepository.kt index b0f2b5e284..c9c07624e5 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaAuthRepository.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaAuthRepository.kt @@ -4,9 +4,9 @@ import arrow.core.Either import com.squareup.moshi.Moshi import com.tangem.datasource.api.common.response.ApiResponseError import com.tangem.datasource.api.common.response.getOrThrow -import com.tangem.datasource.api.visa.TangemVisaApi -import com.tangem.datasource.api.visa.models.request.* -import com.tangem.datasource.api.visa.models.response.VisaErrorResponseJsonAdapter +import com.tangem.datasource.api.pay.TangemPayApi +import com.tangem.datasource.api.pay.models.request.* +import com.tangem.datasource.api.pay.models.response.VisaErrorResponseJsonAdapter import com.tangem.datasource.di.NetworkMoshi import com.tangem.domain.visa.error.VisaApiError import com.tangem.domain.visa.model.VisaAuthChallenge @@ -21,7 +21,7 @@ import javax.inject.Inject @Suppress("UnusedPrivateMember") internal class DefaultVisaAuthRepository @Inject constructor( @NetworkMoshi private val moshi: Moshi, - private val visaAuthApi: TangemVisaApi, + private val visaAuthApi: TangemPayApi, private val dispatchers: CoroutineDispatcherProvider, ) : VisaAuthRepository { diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaRepository.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaRepository.kt index 09eaf90d10..55d8eae097 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaRepository.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/DefaultVisaRepository.kt @@ -14,8 +14,8 @@ import com.tangem.data.common.cache.CacheRegistry import com.tangem.data.common.quote.QuotesFetcher import com.tangem.data.visa.config.VisaLibLoader import com.tangem.data.visa.utils.* -import com.tangem.datasource.api.visa.TangemVisaApi -import com.tangem.datasource.api.visa.models.response.VisaTxHistoryResponse +import com.tangem.datasource.api.pay.TangemPayApi +import com.tangem.datasource.api.pay.models.response.VisaTxHistoryResponse import com.tangem.datasource.local.userwallet.UserWalletsStore import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.visa.model.VisaCurrency @@ -43,7 +43,7 @@ internal class DefaultVisaRepository @Inject constructor( private val userWalletsStore: UserWalletsStore, private val dispatchers: CoroutineDispatcherProvider, private val visaApiRequestMaker: VisaApiRequestMaker, - private val visaApi: TangemVisaApi, + private val visaApi: TangemPayApi, private val visaCurrencyFactory: VisaCurrencyFactory, ) : VisaRepository { diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/converter/VisaActivationStatusConverterWithState.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/converter/VisaActivationStatusConverterWithState.kt index cc00430f80..09128b4324 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/converter/VisaActivationStatusConverterWithState.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/converter/VisaActivationStatusConverterWithState.kt @@ -1,6 +1,6 @@ package com.tangem.data.visa.converter -import com.tangem.datasource.api.visa.models.response.CardActivationRemoteStateResponse +import com.tangem.datasource.api.pay.models.response.CardActivationRemoteStateResponse import com.tangem.domain.visa.model.VisaActivationOrderInfo import com.tangem.domain.visa.model.VisaActivationRemoteState import com.tangem.utils.converter.Converter diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt index 147f558037..792ad89620 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaApiRequestMaker.kt @@ -5,8 +5,8 @@ import com.tangem.data.visa.model.AccessCodeData import com.tangem.datasource.api.common.response.ApiResponse import com.tangem.datasource.api.common.response.ApiResponseError import com.tangem.datasource.api.common.response.getOrThrow -import com.tangem.datasource.api.visa.TangemVisaApi -import com.tangem.datasource.api.visa.models.request.RefreshTokenByCardWalletRequest +import com.tangem.datasource.api.pay.TangemPayApi +import com.tangem.datasource.api.pay.models.request.RefreshTokenByCardWalletRequest import com.tangem.datasource.local.userwallet.UserWalletsStore import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.visa.exception.RefreshTokenExpiredException @@ -25,7 +25,7 @@ typealias VisaAuthorizationHeader = String internal class VisaApiRequestMaker @Inject constructor( private val userWalletsStore: UserWalletsStore, - private val visaAuthApi: TangemVisaApi, + private val visaAuthApi: TangemPayApi, private val accessCodeDataConverter: AccessCodeDataConverter, private val dispatcherProvider: CoroutineDispatcherProvider, ) { diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxDetailsFactory.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxDetailsFactory.kt index 8f9b41148f..b33a0cafb9 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxDetailsFactory.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxDetailsFactory.kt @@ -2,7 +2,7 @@ package com.tangem.data.visa.utils import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.externallinkprovider.TxExploreState -import com.tangem.datasource.api.visa.models.response.VisaTxHistoryResponse +import com.tangem.datasource.api.pay.models.response.VisaTxHistoryResponse import com.tangem.domain.visa.model.VisaTxDetails internal class VisaTxDetailsFactory { diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryItemFactory.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryItemFactory.kt index 75a8c4eefe..d7be726e36 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryItemFactory.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryItemFactory.kt @@ -1,6 +1,6 @@ package com.tangem.data.visa.utils -import com.tangem.datasource.api.visa.models.response.VisaTxHistoryResponse +import com.tangem.datasource.api.pay.models.response.VisaTxHistoryResponse import com.tangem.domain.visa.model.VisaTxHistoryItem internal class VisaTxHistoryItemFactory { diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryPagingSource.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryPagingSource.kt index 4393d4f372..c37c9f9762 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryPagingSource.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/visa/utils/VisaTxHistoryPagingSource.kt @@ -3,7 +3,7 @@ package com.tangem.data.visa.utils import androidx.paging.PagingSource import androidx.paging.PagingState import com.tangem.data.common.cache.CacheRegistry -import com.tangem.datasource.api.visa.models.response.VisaTxHistoryResponse +import com.tangem.datasource.api.pay.models.response.VisaTxHistoryResponse import com.tangem.domain.visa.model.VisaTxHistoryItem import com.tangem.domain.wallets.models.UserWallet import com.tangem.utils.coroutines.CoroutineDispatcherProvider diff --git a/domain/visa/models/src/main/kotlin/com/tangem/domain/pay/KycStartInfo.kt b/domain/visa/models/src/main/kotlin/com/tangem/domain/pay/KycStartInfo.kt new file mode 100644 index 0000000000..e568e679f3 --- /dev/null +++ b/domain/visa/models/src/main/kotlin/com/tangem/domain/pay/KycStartInfo.kt @@ -0,0 +1,6 @@ +package com.tangem.domain.pay + +data class KycStartInfo( + val token: String, + val locale: String, +) \ No newline at end of file diff --git a/domain/visa/src/main/kotlin/com/tangem/domain/pay/repository/KycRepository.kt b/domain/visa/src/main/kotlin/com/tangem/domain/pay/repository/KycRepository.kt new file mode 100644 index 0000000000..58380aabb0 --- /dev/null +++ b/domain/visa/src/main/kotlin/com/tangem/domain/pay/repository/KycRepository.kt @@ -0,0 +1,15 @@ +package com.tangem.domain.pay.repository + +import arrow.core.Either +import com.tangem.core.error.UniversalError +import com.tangem.domain.pay.KycStartInfo +import com.tangem.domain.wallets.models.UserWalletId + +interface KycRepository { + + suspend fun getKycStartInfo(): Either + + interface Factory { + fun create(userWalletId: UserWalletId): KycRepository + } +} \ No newline at end of file diff --git a/features/kyc/impl/build.gradle.kts b/features/kyc/impl/build.gradle.kts index 86e6e641fb..1bf8fc66f2 100644 --- a/features/kyc/impl/build.gradle.kts +++ b/features/kyc/impl/build.gradle.kts @@ -15,6 +15,10 @@ dependencies { /** Api */ implementation(projects.features.kyc.api) + /** Domain */ + implementation(projects.domain.visa) + implementation(projects.domain.wallets.models) + /** Core modules */ implementation(projects.core.configToggles) implementation(projects.core.analytics) @@ -25,6 +29,7 @@ dependencies { implementation(projects.core.decompose) implementation(projects.core.navigation) implementation(projects.core.datasource) + implementation(projects.core.error) /** Common */ implementation(projects.common.ui) @@ -47,6 +52,7 @@ dependencies { implementation(deps.timber) implementation(deps.firebase.crashlytics) implementation(deps.sumsub.sdk) + implementation(deps.arrow.core) /** DI */ implementation(deps.hilt.android) diff --git a/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycComponent.kt b/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycComponent.kt index d192cead2d..5494ff060e 100644 --- a/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycComponent.kt +++ b/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycComponent.kt @@ -1,35 +1,67 @@ package com.tangem.features.kyc import com.sumsub.sns.core.SNSMobileSDK +import com.sumsub.sns.core.data.listener.SNSCompleteHandler import com.sumsub.sns.core.data.listener.TokenExpirationHandler +import com.sumsub.sns.core.data.model.SNSCompletionResult +import com.sumsub.sns.core.data.model.SNSSDKState +import com.sumsub.sns.core.theme.SNSTheme +import com.sumsub.sns.core.theme.SNSThemeMetric +import com.sumsub.sns.core.theme.colors +import com.sumsub.sns.core.theme.metrics import com.tangem.core.decompose.context.AppComponentContext +import com.tangem.domain.pay.repository.KycRepository +import com.tangem.domain.wallets.models.UserWalletId import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject +import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking import java.util.Locale class DefaultKycComponent @AssistedInject constructor( @Assisted appComponentContext: AppComponentContext, + private val kycRepositoryFactory: KycRepository.Factory, ) : KycComponent, AppComponentContext by appComponentContext { + private val kycRepository = kycRepositoryFactory.create(UserWalletId("0FFFFF")) + override fun launch() { - val accessToken = "123456" + componentScope.launch { + // val startInfo = kycRepository.getKycStartInfo().getOrNull() ?: return@launch - val tokenExpirationHandler = object : TokenExpirationHandler { - override fun onTokenExpired(): String? { - // Access token expired - // get a new one and pass it to the callback to re-initiate the SDK - val newToken = "..." // get a new token from your backend - return newToken + val tokenExpirationHandler = object : TokenExpirationHandler { + override fun onTokenExpired(): String? { + val newToken = runBlocking { kycRepository.getKycStartInfo().getOrNull()?.token } + return newToken + } } + + val snsSdk = SNSMobileSDK.Builder(activity) + .withAccessToken( + "TODO", + onTokenExpiration = tokenExpirationHandler, + ) + .withTheme( + SNSTheme { + colors { + } + metrics { + this.screenHeaderAlignment = SNSThemeMetric.TextAlignment.CENTER + } + }, + ) + .withLocale(Locale("en")) + .withCompleteHandler( + object : SNSCompleteHandler { + override fun onComplete(result: SNSCompletionResult, state: SNSSDKState) { + } + }, + ) + .build() + + snsSdk.launch() } - - val snsSdk = SNSMobileSDK.Builder(activity) - .withAccessToken(accessToken, onTokenExpiration = tokenExpirationHandler) - .withLocale(Locale("en")) - .build() - - snsSdk.launch() } @AssistedFactory