From e19ba096d57353db6b1f141da4bf170ef2d2d534 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 29 Jul 2020 14:12:50 -0300 Subject: [wallet] update to new wallet-core with v8 exchange API (except payments which are still buggy) --- .../net/taler/wallet/payment/PaymentResponses.kt | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt (limited to 'wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt') diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt b/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt new file mode 100644 index 0000000..4c5b010 --- /dev/null +++ b/wallet/src/main/java/net/taler/wallet/payment/PaymentResponses.kt @@ -0,0 +1,62 @@ +/* + * This file is part of GNU Taler + * (C) 2020 Taler Systems S.A. + * + * GNU Taler is free software; you can redistribute it and/or modify it under the + * terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3, or (at your option) any later version. + * + * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * GNU Taler; see the file COPYING. If not, see + */ + +package net.taler.wallet.payment + +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonSubTypes.Type +import com.fasterxml.jackson.annotation.JsonTypeInfo +import com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME +import com.fasterxml.jackson.annotation.JsonTypeName +import net.taler.common.ContractTerms +import net.taler.wallet.payment.PreparePayResponse.AlreadyConfirmedResponse +import net.taler.wallet.payment.PreparePayResponse.InsufficientBalanceResponse +import net.taler.wallet.payment.PreparePayResponse.PaymentPossibleResponse + +@JsonTypeInfo(use = NAME, include = PROPERTY, property = "status") +@JsonSubTypes( + Type(value = PaymentPossibleResponse::class, name = "payment-possible"), + Type(value = AlreadyConfirmedResponse::class, name = "already-confirmed"), + Type(value = InsufficientBalanceResponse::class, name = "insufficient-balance") +) +sealed class PreparePayResponse(open val proposalId: String) { + @JsonTypeName("payment-possible") + data class PaymentPossibleResponse( + override val proposalId: String, + val contractTerms: ContractTerms + ) : PreparePayResponse(proposalId) + + @JsonTypeName("insufficient-balance") + data class InsufficientBalanceResponse( + override val proposalId: String, + val contractTerms: ContractTerms + ) : PreparePayResponse(proposalId) + + @JsonTypeName("already-confirmed") + data class AlreadyConfirmedResponse( + override val proposalId: String, + /** + * Did the payment succeed? + */ + val paid: Boolean, + + /** + * Redirect URL for the fulfillment page, only given if paid==true. + */ + val nextUrl: String? + ) : PreparePayResponse(proposalId) +} -- cgit v1.2.3