gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]