summaryrefslogtreecommitdiff
path: root/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-08-04 09:46:38 -0300
committerTorsten Grote <t@grobox.de>2020-08-04 09:46:38 -0300
commit35f7ed512ed7445362d6caee1bf60441f4ce979e (patch)
tree08fb02c802ff36065dd85fb9dcb95a0adabc03c3 /merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt
parentd3a035c59c508b7b0ef3c06a1b0f1f3c0a077bb8 (diff)
downloadtaler-android-35f7ed512ed7445362d6caee1bf60441f4ce979e.tar.gz
taler-android-35f7ed512ed7445362d6caee1bf60441f4ce979e.tar.bz2
taler-android-35f7ed512ed7445362d6caee1bf60441f4ce979e.zip
[pos] Implement new refund API (untested since there is no wallet support)
Also do a bit of code cleanup and minor refactorings This also removes the volley HTTP library which is not needed anymore
Diffstat (limited to 'merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt')
-rw-r--r--merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt85
1 files changed, 0 insertions, 85 deletions
diff --git a/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt b/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt
deleted file mode 100644
index 783dd19..0000000
--- a/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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 <http://www.gnu.org/licenses/>
- */
-
-package net.taler.merchantlib
-
-import kotlinx.serialization.Decoder
-import kotlinx.serialization.Encoder
-import kotlinx.serialization.KSerializer
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.Serializer
-import kotlinx.serialization.json.JsonInput
-import kotlinx.serialization.json.JsonObject
-import net.taler.common.ContractTerms
-import net.taler.common.Duration
-
-@Serializable
-data class PostOrderRequest(
- @SerialName("order")
- val contractTerms: ContractTerms,
- @SerialName("refund_delay")
- val refundDelay: Duration? = null
-)
-
-@Serializable
-data class PostOrderResponse(
- @SerialName("order_id")
- val orderId: String
-)
-
-@Serializable
-sealed class CheckPaymentResponse {
- abstract val paid: Boolean
-
- @Serializer(forClass = CheckPaymentResponse::class)
- companion object : KSerializer<CheckPaymentResponse> {
- override fun deserialize(decoder: Decoder): CheckPaymentResponse {
- val input = decoder as JsonInput
- val tree = input.decodeJson() as JsonObject
- val orderStatus = tree.getPrimitive("order_status").content
-// return if (orderStatus == "paid") decoder.json.fromJson(Paid.serializer(), tree)
-// else decoder.json.fromJson(Unpaid.serializer(), tree)
- // manual parsing due to https://github.com/Kotlin/kotlinx.serialization/issues/576
- return if (orderStatus == "paid") Paid(
- refunded = tree.getPrimitive("refunded").boolean
- ) else Unpaid(
- talerPayUri = tree.getPrimitive("taler_pay_uri").content
- )
- }
-
- override fun serialize(encoder: Encoder, value: CheckPaymentResponse) = when (value) {
- is Unpaid -> Unpaid.serializer().serialize(encoder, value)
- is Paid -> Paid.serializer().serialize(encoder, value)
- }
- }
-
- @Serializable
- data class Unpaid(
- override val paid: Boolean = false,
- @SerialName("taler_pay_uri")
- val talerPayUri: String,
- @SerialName("already_paid_order_id")
- val alreadyPaidOrderId: String? = null
- ) : CheckPaymentResponse()
-
- @Serializable
- data class Paid(
- override val paid: Boolean = true,
- val refunded: Boolean
- ) : CheckPaymentResponse()
-
-}