From a8c811f6cdf4bf1b787ebaaa9fd220588fd1ffcf Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 22 Jul 2020 16:53:06 -0300 Subject: [pos] migrate order posting and checking to v1 API and merchant-lib --- .../main/java/net/taler/merchantpos/order/Order.kt | 21 +++++++++++++++++++++ .../net/taler/merchantpos/order/OrderManager.kt | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/order') diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt index ff6e6b7..bb75362 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt @@ -17,8 +17,13 @@ package net.taler.merchantpos.order import net.taler.common.Amount +import net.taler.common.ContractTerms +import net.taler.common.now import net.taler.merchantpos.config.Category import net.taler.merchantpos.config.ConfigProduct +import java.net.URLEncoder + +private const val FULFILLMENT_PREFIX = "taler://fulfillment-success/" data class Order(val id: Int, val currency: String, val availableCategories: Map) { val products = ArrayList() @@ -103,4 +108,20 @@ data class Order(val id: Int, val currency: String, val availableCategories: Map }.toMap() } + private val fulfillmentUri: String + get() { + val fulfillmentId = "${now()}-${hashCode()}" + return "$FULFILLMENT_PREFIX${URLEncoder.encode(summary, "UTF-8")}#$fulfillmentId" + } + + fun toContractTerms(): ContractTerms { + return ContractTerms( + summary = summary, + summaryI18n = summaryI18n, + amount = total, + fulfillmentUrl = fulfillmentUri, + products = products.map { it.toContractProduct() } + ) + } + } diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/order/OrderManager.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/order/OrderManager.kt index ff2be48..46ea238 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/order/OrderManager.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/order/OrderManager.kt @@ -113,7 +113,7 @@ class OrderManager( @UiThread internal fun getOrder(orderId: Int): LiveOrder { - return orders[orderId] ?: throw IllegalArgumentException() + return orders[orderId] ?: throw IllegalArgumentException("Order not found: $orderId") } @UiThread -- cgit v1.2.3