[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-taler-android] branch master updated: [cashier] Upgrade to newer bank APIs and better response handling,
gnunet <=