diff options
author | Torsten Grote <t@grobox.de> | 2020-07-22 16:53:06 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-07-22 16:53:06 -0300 |
commit | a8c811f6cdf4bf1b787ebaaa9fd220588fd1ffcf (patch) | |
tree | 604cd516a904f9c7474e37a87f92018f55ca4d1b /merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt | |
parent | b9d7d6edb7cc12e5238168c4446a28c0ae98c729 (diff) | |
download | taler-android-a8c811f6cdf4bf1b787ebaaa9fd220588fd1ffcf.tar.gz taler-android-a8c811f6cdf4bf1b787ebaaa9fd220588fd1ffcf.tar.bz2 taler-android-a8c811f6cdf4bf1b787ebaaa9fd220588fd1ffcf.zip |
[pos] migrate order posting and checking to v1 API and merchant-lib
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt')
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt | 21 |
1 files changed, 21 insertions, 0 deletions
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<Int, Category>) { val products = ArrayList<ConfigProduct>() @@ -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() } + ) + } + } |