summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-06-20 20:07:42 -0600
committerTorsten Grote <t@grobox.de>2023-07-11 10:31:26 -0300
commit298dfb31b8e53b999c7983fa9ac0a2bf154f42bd (patch)
tree5cc02e45feb075fbe182b48b273184a1083a5989 /wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
parentb62bd90f86f6fc4ba9e1971df4818a65c9eedada (diff)
downloadtaler-android-298dfb31b8e53b999c7983fa9ac0a2bf154f42bd.tar.gz
taler-android-298dfb31b8e53b999c7983fa9ac0a2bf154f42bd.tar.bz2
taler-android-298dfb31b8e53b999c7983fa9ac0a2bf154f42bd.zip
[wallet] Better error handling for tx actions.
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt30
1 files changed, 16 insertions, 14 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
index 725f2c5..ffaccc6 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
@@ -128,73 +128,75 @@ class TransactionManager(
mSelectedTransaction.postValue(transaction)
}
- fun deleteTransaction(transactionId: String) = scope.launch {
+ fun deleteTransaction(transactionId: String, onError: (it: TalerErrorInfo) -> Unit) = scope.launch {
api.request<Unit>("deleteTransaction") {
put("transactionId", transactionId)
}.onError {
- Log.e(TAG, "Error deleteTransaction $it")
+ onError(it)
}.onSuccess {
// re-load transactions as our list is stale otherwise
loadTransactions()
}
}
- fun retryTransaction(transactionId: String) = scope.launch {
+ fun retryTransaction(transactionId: String, onError: (it: TalerErrorInfo) -> Unit) = scope.launch {
api.request<Unit>("retryTransaction") {
put("transactionId", transactionId)
}.onError {
- Log.e(TAG, "Error retryTransaction $it")
+ onError(it)
}.onSuccess {
loadTransactions()
}
}
- fun abortTransaction(transactionId: String) = scope.launch {
+ fun abortTransaction(transactionId: String, onError: (it: TalerErrorInfo) -> Unit) = scope.launch {
api.request<Unit>("abortTransaction") {
put("transactionId", transactionId)
}.onError {
- Log.e(TAG, "Error abortTransaction $it")
+ onError(it)
}.onSuccess {
loadTransactions()
}
}
- fun failTransaction(transactionId: String) = scope.launch {
+ fun failTransaction(transactionId: String, onError: (it: TalerErrorInfo) -> Unit) = scope.launch {
api.request<Unit>("failTransaction") {
put("transactionId", transactionId)
}.onError {
- Log.e(TAG, "Error failTransaction $it")
+ onError(it)
}.onSuccess {
loadTransactions()
}
}
- fun suspendTransaction(transactionId: String) = scope.launch {
+ fun suspendTransaction(transactionId: String, onError: (it: TalerErrorInfo) -> Unit) = scope.launch {
api.request<Unit>("suspendTransaction") {
put("transactionId", transactionId)
}.onError {
- Log.e(TAG, "Error suspendTransaction $it")
+ onError(it)
}.onSuccess {
loadTransactions()
}
}
- fun resumeTransaction(transactionId: String) = scope.launch {
+ fun resumeTransaction(transactionId: String, onError: (it: TalerErrorInfo) -> Unit) = scope.launch {
api.request<Unit>("resumeTransaction") {
put("transactionId", transactionId)
}.onError {
- Log.e(TAG, "Error resumeTransaction $it")
+ onError(it)
}.onSuccess {
loadTransactions()
}
}
- fun deleteTransactions(transactionIds: List<String>) {
+ fun deleteTransactions(transactionIds: List<String>, onError: (it: TalerErrorInfo) -> Unit) {
allTransactions[selectedCurrency]?.filter { transaction ->
transaction.transactionId in transactionIds
}?.forEach { toBeDeletedTx ->
if (Delete in toBeDeletedTx.txActions) {
- deleteTransaction(toBeDeletedTx.transactionId)
+ deleteTransaction(toBeDeletedTx.transactionId) {
+ onError(it)
+ }
}
}
}