aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/transactions.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-05-24 14:59:54 +0200
committerFlorian Dold <florian@dold.me>2023-05-24 14:59:54 +0200
commit318f54418467e31c9b4b71d82d2cf00932fc167c (patch)
tree1153a9c89e6acfcf4ca06652e00b6705ba970076 /packages/taler-wallet-core/src/operations/transactions.ts
parenta2ef2e391a8f030857d0f9cd56c6157cffb33659 (diff)
wallet-core: implement deletion for new refund implementation
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/transactions.ts18
1 files changed, 17 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts
index 41c74f4d1..647b9dd90 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -71,6 +71,7 @@ import { assertUnreachable } from "../util/assertUnreachable.js";
import { checkDbInvariant, checkLogicInvariant } from "../util/invariants.js";
import { constructTaskIdentifier, TaskIdentifiers } from "../util/retries.js";
import {
+ constructTombstone,
makeTombstoneId,
resetOperationTimeout,
runOperationWithErrorReporting,
@@ -1615,7 +1616,22 @@ export async function deleteTransaction(
}
case TransactionType.Refund: {
- // FIXME: Implement!
+ const refundGroupId = parsedTx.refundGroupId;
+ await ws.db
+ .mktx((x) => [x.refundGroups, x.tombstones])
+ .runReadWrite(async (tx) => {
+ const refundRecord = await tx.refundGroups.get(refundGroupId);
+ if (!refundRecord) {
+ return;
+ }
+ await tx.refundGroups.delete(refundGroupId);
+ await tx.tombstones.put({
+ id: constructTombstone({
+ tag: TombstoneTag.DeleteRefund,
+ refundGroupId,
+ }),
+ });
+ });
return;
}