summaryrefslogtreecommitdiff
path: root/merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-07-22 16:53:06 -0300
committerTorsten Grote <t@grobox.de>2020-07-22 16:53:06 -0300
commita8c811f6cdf4bf1b787ebaaa9fd220588fd1ffcf (patch)
tree604cd516a904f9c7474e37a87f92018f55ca4d1b /merchant-terminal/src/main/java/net/taler/merchantpos/order/Order.kt
parentb9d7d6edb7cc12e5238168c4446a28c0ae98c729 (diff)
downloadtaler-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.kt21
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() }
+ )
+ }
+
}