[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-merchant-terminal-android] 07/19: Add ordered products to order's
From: |
gnunet |
Subject: |
[taler-merchant-terminal-android] 07/19: Add ordered products to order's contract terms |
Date: |
Fri, 21 Feb 2020 19:00:00 +0100 |
This is an automated email from the git hooks/post-receive script.
torsten-grote pushed a commit to branch master
in repository merchant-terminal-android.
commit 5be8ea6403fbb7026c8df3402014dd375aa94458
Author: Torsten Grote <address@hidden>
AuthorDate: Mon Feb 3 09:52:33 2020 -0300
Add ordered products to order's contract terms
---
.../main/java/net/taler/merchantpos/MainViewModel.kt | 2 +-
.../java/net/taler/merchantpos/config/ConfigManager.kt | 4 ++--
.../net/taler/merchantpos/payment/PaymentManager.kt | 18 +++++++++++++++++-
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/net/taler/merchantpos/MainViewModel.kt
b/app/src/main/java/net/taler/merchantpos/MainViewModel.kt
index 716c1e7..c07c996 100644
--- a/app/src/main/java/net/taler/merchantpos/MainViewModel.kt
+++ b/app/src/main/java/net/taler/merchantpos/MainViewModel.kt
@@ -22,7 +22,7 @@ class MainViewModel(app: Application) : AndroidViewModel(app)
{
val configManager = ConfigManager(app, viewModelScope, mapper,
queue).apply {
addConfigurationReceiver(orderManager)
}
- val paymentManager = PaymentManager(configManager, queue)
+ val paymentManager = PaymentManager(configManager, queue, mapper)
@Deprecated("Use ConfigManager instead!",
ReplaceWith("configManager.merchantConfig"))
val merchantConfig
diff --git a/app/src/main/java/net/taler/merchantpos/config/ConfigManager.kt
b/app/src/main/java/net/taler/merchantpos/config/ConfigManager.kt
index 563394f..5bc8e4b 100644
--- a/app/src/main/java/net/taler/merchantpos/config/ConfigManager.kt
+++ b/app/src/main/java/net/taler/merchantpos/config/ConfigManager.kt
@@ -128,8 +128,8 @@ class ConfigManager(
.apply()
}
- private fun onNetworkError(it: VolleyError) {
- val authError = it.networkResponse.statusCode == 401
+ private fun onNetworkError(it: VolleyError?) {
+ val authError = it?.networkResponse?.statusCode == 401
mConfigUpdateResult.value = ConfigUpdateResult(null, authError)
}
diff --git a/app/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
b/app/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
index 5f8935e..bb030e2 100644
--- a/app/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
+++ b/app/src/main/java/net/taler/merchantpos/payment/PaymentManager.kt
@@ -11,10 +11,13 @@ import com.android.volley.RequestQueue
import com.android.volley.Response.ErrorListener
import com.android.volley.Response.Listener
import com.android.volley.VolleyError
+import com.fasterxml.jackson.databind.ObjectMapper
+import com.fasterxml.jackson.databind.node.ObjectNode
import net.taler.merchantpos.config.ConfigManager
import net.taler.merchantpos.config.MerchantRequest
import net.taler.merchantpos.order.Order
import net.taler.merchantpos.order.getTotalAsString
+import org.json.JSONArray
import org.json.JSONObject
import java.util.concurrent.TimeUnit.MINUTES
import java.util.concurrent.TimeUnit.SECONDS
@@ -24,7 +27,8 @@ private val CHECK_INTERVAL = SECONDS.toMillis(1)
class PaymentManager(
private val configManager: ConfigManager,
- private val queue: RequestQueue
+ private val queue: RequestQueue,
+ private val mapper: ObjectMapper
) {
private val mPayment = MutableLiveData<Payment>()
@@ -62,6 +66,7 @@ class PaymentManager(
// fulfillment_url needs to be unique per order
put("fulfillment_url",
"https://example.com/${order.hashCode()}")
put("instance", "default")
+ put("products", order.getProductsJson())
})
}
@@ -72,6 +77,17 @@ class PaymentManager(
queue.add(req)
}
+ private fun Order.getProductsJson(): JSONArray {
+ val json = JSONArray()
+ forEach { product, quantity ->
+ val node = mapper.valueToTree<ObjectNode>(product).apply {
+ put("quantity", quantity)
+ }
+ json.put(JSONObject(mapper.writeValueAsString(node)))
+ }
+ return json
+ }
+
private fun onOrderCreated(orderResponse: JSONObject) {
val orderId = orderResponse.getString("order_id")
mPayment.value = mPayment.value!!.copy(orderId = orderId)
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [taler-merchant-terminal-android] branch master updated (f463d1b -> 39af919), gnunet, 2020/02/21
- [taler-merchant-terminal-android] 03/19: Fix crash when loading history, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 01/19: Upgrade libraries to latest stable versions, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 05/19: Allow user to undo restarting the order, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 07/19: Add ordered products to order's contract terms,
gnunet <=
- [taler-merchant-terminal-android] 08/19: Use actual taler icon for the app, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 09/19: Factor out NFC code from MainActivity, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 06/19: Create payments directly from the order, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 04/19: Fetch merchant config from central configuration JSON, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 02/19: Add screen to process an order, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 18/19: Don't talk about NFC if it is not supported, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 14/19: Use product categories for order summary, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 11/19: Allow user to decide if they want to save password, add FORGET option, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 13/19: Make NFC and QR code re-useable in another app, gnunet, 2020/02/21
- [taler-merchant-terminal-android] 15/19: Introduce different product classes for re-use in other taler apps, gnunet, 2020/02/21