diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-06-20 20:07:42 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-07-11 10:31:26 -0300 |
commit | 298dfb31b8e53b999c7983fa9ac0a2bf154f42bd (patch) | |
tree | 5cc02e45feb075fbe182b48b273184a1083a5989 /wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt | |
parent | b62bd90f86f6fc4ba9e1971df4818a65c9eedada (diff) | |
download | taler-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.kt | 30 |
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) + } } } } |