summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
diff options
context:
space:
mode:
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt25
1 files changed, 3 insertions, 22 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
index 4924752..befcd83 100644
--- a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
@@ -20,12 +20,10 @@ import android.util.Log
import androidx.annotation.UiThread
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
-import com.fasterxml.jackson.databind.ObjectMapper
-import com.fasterxml.jackson.module.kotlin.readValue
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
-import net.taler.lib.common.Amount
import net.taler.common.ContractTerms
+import net.taler.lib.common.Amount
import net.taler.wallet.TAG
import net.taler.wallet.backend.WalletBackendApi
import net.taler.wallet.backend.WalletErrorInfo
@@ -34,8 +32,6 @@ import net.taler.wallet.payment.PayStatus.InsufficientBalance
import net.taler.wallet.payment.PreparePayResponse.AlreadyConfirmedResponse
import net.taler.wallet.payment.PreparePayResponse.InsufficientBalanceResponse
import net.taler.wallet.payment.PreparePayResponse.PaymentPossibleResponse
-import org.json.JSONObject
-import java.net.MalformedURLException
val REGEX_PRODUCT_IMAGE = Regex("^data:image/(jpeg|png);base64,([A-Za-z0-9+/=]+)$")
@@ -63,7 +59,6 @@ sealed class PayStatus {
class PaymentManager(
private val api: WalletBackendApi,
private val scope: CoroutineScope,
- private val mapper: ObjectMapper
) {
private val mPayStatus = MutableLiveData<PayStatus>(PayStatus.None)
@@ -76,7 +71,7 @@ class PaymentManager(
fun preparePay(url: String) = scope.launch {
mPayStatus.value = PayStatus.Loading
mDetailsShown.value = false
- api.request<PreparePayResponse>("preparePay", mapper) {
+ api.request("preparePay", PreparePayResponse.serializer()) {
put("talerPayUri", url)
}.onError {
handleError("preparePay", it)
@@ -93,20 +88,6 @@ class PaymentManager(
}
}
- // TODO validate product images (or leave to wallet-core?)
- private fun getContractTerms(json: JSONObject): ContractTerms {
- val terms: ContractTerms = mapper.readValue(json.getString("contractTermsRaw"))
- // validate product images
- terms.products.forEach { product ->
- product.image?.let { image ->
- if (REGEX_PRODUCT_IMAGE.matchEntire(image) == null) {
- throw MalformedURLException("Invalid image data URL for ${product.description}")
- }
- }
- }
- return terms
- }
-
fun confirmPay(proposalId: String, currency: String) = scope.launch {
api.request("confirmPay", ConfirmPayResult.serializer()) {
put("proposalId", proposalId)
@@ -128,7 +109,7 @@ class PaymentManager(
internal fun abortProposal(proposalId: String) = scope.launch {
Log.i(TAG, "aborting proposal")
- api.request<String>("abortProposal", mapper) {
+ api.request<Unit>("abortProposal") {
put("proposalId", proposalId)
}.onError {
Log.e(TAG, "received error response to abortProposal")