gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] branch master updated: [cashier] Upgrade to newer


From: gnunet
Subject: [taler-taler-android] branch master updated: [cashier] Upgrade to newer bank APIs and better response handling
Date: Mon, 19 Feb 2024 23:52:07 +0100

This is an automated email from the git hooks/post-receive script.

ivan-avalos pushed a commit to branch master
in repository taler-android.

The following commit(s) were added to refs/heads/master by this push:
     new d6c5237  [cashier] Upgrade to newer bank APIs and better response 
handling
d6c5237 is described below

commit d6c523720db1b3cf0de7638a44420d0c8e0a162c
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Mon Feb 19 16:48:25 2024 -0600

    [cashier] Upgrade to newer bank APIs and better response handling
---
 .../src/main/java/net/taler/cashier/HttpHelper.kt  | 12 ++++++----
 .../main/java/net/taler/cashier/MainViewModel.kt   |  2 +-
 .../net/taler/cashier/withdraw/WithdrawManager.kt  | 28 +++++++++++-----------
 3 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/cashier/src/main/java/net/taler/cashier/HttpHelper.kt 
b/cashier/src/main/java/net/taler/cashier/HttpHelper.kt
index fd48b2d..69cc46f 100644
--- a/cashier/src/main/java/net/taler/cashier/HttpHelper.kt
+++ b/cashier/src/main/java/net/taler/cashier/HttpHelper.kt
@@ -50,11 +50,13 @@ object HttpHelper {
             Log.e(TAG, "Error retrieving $url", e)
             return HttpJsonResult.Error(0)
         }
-        return if (response.code == 200 && response.body != null) {
+        return if (response.code == 204) {
+            HttpJsonResult.Success(JSONObject())
+        } else if (response.code in 200..299 && response.body != null) {
             val jsonObject = JSONObject(response.body!!.string())
             HttpJsonResult.Success(jsonObject)
         } else {
-            Log.e(TAG, "Received status ${response.code} from $url expected 
200")
+            Log.e(TAG, "Received status ${response.code} from $url expected 
2xx")
             HttpJsonResult.Error(response.code, getErrorBody(response))
         }
     }
@@ -76,11 +78,13 @@ object HttpHelper {
             Log.e(TAG, "Error retrieving $url", e)
             return HttpJsonResult.Error(0)
         }
-        return if (response.code == 200 && response.body != null) {
+        return if (response.code == 204) {
+            HttpJsonResult.Success(JSONObject())
+        } else if (response.code in 200..299 && response.body != null) {
             val jsonObject = JSONObject(response.body!!.string())
             HttpJsonResult.Success(jsonObject)
         } else {
-            Log.e(TAG, "Received status ${response.code} from $url expected 
200")
+            Log.e(TAG, "Received status ${response.code} from $url expected 
2xx")
             HttpJsonResult.Error(response.code, getErrorBody(response))
         }
     }
diff --git a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt 
b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
index 21d0209..2196e78 100644
--- a/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
+++ b/cashier/src/main/java/net/taler/cashier/MainViewModel.kt
@@ -64,7 +64,7 @@ class MainViewModel(private val app: Application) : 
AndroidViewModel(app) {
     fun getBalance() = viewModelScope.launch(Dispatchers.IO) {
         check(configManager.hasConfig()) { "No config to get balance" }
         val config = configManager.config
-        val url = "${config.bankUrl}/access-api/accounts/${config.username}"
+        val url = "${config.bankUrl}/accounts/${config.username}"
         Log.d(TAG, "Checking balance at $url")
         val result = when (val response = makeJsonGetRequest(url, config)) {
             is HttpJsonResult.Success -> {
diff --git 
a/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt 
b/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
index c6c39d0..487475d 100644
--- a/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
+++ b/cashier/src/main/java/net/taler/cashier/withdraw/WithdrawManager.kt
@@ -94,7 +94,7 @@ class WithdrawManager(
         mWithdrawResult.value = null
         mWithdrawAmount.value = amount
         scope.launch(Dispatchers.IO) {
-            val url = 
"${config.bankUrl}/access-api/accounts/${config.username}/withdrawals"
+            val url = 
"${config.bankUrl}/accounts/${config.username}/withdrawals"
             Log.d(TAG, "Starting withdrawal at $url")
             val map = mapOf("amount" to amount.toJSONString())
             val body = JSONObject(map)
@@ -154,31 +154,31 @@ class WithdrawManager(
 
     private fun checkWithdrawStatus(withdrawalId: String) = 
scope.launch(Dispatchers.IO) {
         val url =
-            
"${config.bankUrl}/access-api/accounts/${config.username}/withdrawals/${withdrawalId}"
+            "${config.bankUrl}/withdrawals/${withdrawalId}"
         Log.d(TAG, "Checking withdraw status at $url")
         val response = makeJsonGetRequest(url, config)
         if (response !is Success) return@launch  // ignore errors and continue 
trying
         val oldStatus = mWithdrawStatus.value
         try {
-            when {
-                response.json.getBoolean("aborted") -> {
+            when(response.json.getString("status")) {
+                "selected" -> {
+                    // only update status, if there's none, yet
+                    // so we don't re-notify or overwrite newer status info
+                    if (oldStatus == null) {
+                        
mWithdrawStatus.postValue(WithdrawStatus.SelectionDone(withdrawalId))
+                    }
+                }
+                "aborted" -> {
                     cancelWithdrawStatusCheck()
                     mWithdrawStatus.postValue(WithdrawStatus.Aborted)
                 }
-                response.json.getBoolean("confirmation_done") -> {
+                "confirmed" -> {
                     if (oldStatus !is WithdrawStatus.Success) {
                         cancelWithdrawStatusCheck()
                         mWithdrawStatus.postValue(WithdrawStatus.Success)
                         viewModel.getBalance()
                     }
                 }
-                response.json.getBoolean("selection_done") -> {
-                    // only update status, if there's none, yet
-                    // so we don't re-notify or overwrite newer status info
-                    if (oldStatus == null) {
-                        
mWithdrawStatus.postValue(WithdrawStatus.SelectionDone(withdrawalId))
-                    }
-                }
             }
         } catch (e: Exception) {
             mWithdrawStatus.postValue(WithdrawStatus.Error(e.toString()))
@@ -206,7 +206,7 @@ class WithdrawManager(
 
     private fun abort(withdrawalId: String) = scope.launch(Dispatchers.IO) {
         val url =
-            
"${config.bankUrl}/access-api/accounts/${config.username}/withdrawals/${withdrawalId}/abort"
+            
"${config.bankUrl}/accounts/${config.username}/withdrawals/${withdrawalId}/abort"
         Log.d(TAG, "Aborting withdrawal at $url")
         makeJsonPostRequest(url, JSONObject(), config)
     }
@@ -216,7 +216,7 @@ class WithdrawManager(
         mWithdrawStatus.value = WithdrawStatus.Confirming
         scope.launch(Dispatchers.IO) {
             val url =
-                
"${config.bankUrl}/access-api/accounts/${config.username}/withdrawals/${withdrawalId}/confirm"
+                
"${config.bankUrl}/accounts/${config.username}/withdrawals/${withdrawalId}/confirm"
             Log.d(TAG, "Confirming withdrawal at $url")
             when (val response = makeJsonPostRequest(url, JSONObject(), 
config)) {
                 is Success -> {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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