diff options
author | Florian Dold <florian@dold.me> | 2023-05-05 19:03:44 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-05-07 21:51:02 +0200 |
commit | 7f0edb6a783d9a50f94f65c815c1280baecaac89 (patch) | |
tree | b4f3bc24fece1f651e8c2f69fc0fcf52e1d6f330 /packages/taler-wallet-core/src/operations/backup | |
parent | a0bf83fbb5db026389cc7d203adcff050d5a1b28 (diff) |
wallet-core: refund DD37 refactoring
Diffstat (limited to 'packages/taler-wallet-core/src/operations/backup')
-rw-r--r-- | packages/taler-wallet-core/src/operations/backup/export.ts | 59 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/operations/backup/import.ts | 95 |
2 files changed, 75 insertions, 79 deletions
diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts b/packages/taler-wallet-core/src/operations/backup/export.ts index 68f8beb93..7b245a4eb 100644 --- a/packages/taler-wallet-core/src/operations/backup/export.ts +++ b/packages/taler-wallet-core/src/operations/backup/export.ts @@ -69,7 +69,6 @@ import { DenominationRecord, PurchaseStatus, RefreshCoinStatus, - RefundState, WithdrawalGroupStatus, WithdrawalRecordType, } from "../../db.js"; @@ -384,34 +383,34 @@ export async function exportBackup( await tx.purchases.iter().forEachAsync(async (purch) => { const refunds: BackupRefundItem[] = []; purchaseProposalIdSet.add(purch.proposalId); - for (const refundKey of Object.keys(purch.refunds)) { - const ri = purch.refunds[refundKey]; - const common = { - coin_pub: ri.coinPub, - execution_time: ri.executionTime, - obtained_time: ri.obtainedTime, - refund_amount: Amounts.stringify(ri.refundAmount), - rtransaction_id: ri.rtransactionId, - total_refresh_cost_bound: Amounts.stringify( - ri.totalRefreshCostBound, - ), - }; - switch (ri.type) { - case RefundState.Applied: - refunds.push({ type: BackupRefundState.Applied, ...common }); - break; - case RefundState.Failed: - refunds.push({ type: BackupRefundState.Failed, ...common }); - break; - case RefundState.Pending: - refunds.push({ type: BackupRefundState.Pending, ...common }); - break; - } - } + // for (const refundKey of Object.keys(purch.refunds)) { + // const ri = purch.refunds[refundKey]; + // const common = { + // coin_pub: ri.coinPub, + // execution_time: ri.executionTime, + // obtained_time: ri.obtainedTime, + // refund_amount: Amounts.stringify(ri.refundAmount), + // rtransaction_id: ri.rtransactionId, + // total_refresh_cost_bound: Amounts.stringify( + // ri.totalRefreshCostBound, + // ), + // }; + // switch (ri.type) { + // case RefundState.Applied: + // refunds.push({ type: BackupRefundState.Applied, ...common }); + // break; + // case RefundState.Failed: + // refunds.push({ type: BackupRefundState.Failed, ...common }); + // break; + // case RefundState.Pending: + // refunds.push({ type: BackupRefundState.Pending, ...common }); + // break; + // } + // } let propStatus: BackupProposalStatus; switch (purch.purchaseStatus) { - case PurchaseStatus.Paid: + case PurchaseStatus.Done: case PurchaseStatus.QueryingAutoRefund: case PurchaseStatus.QueryingRefund: propStatus = BackupProposalStatus.Paid; @@ -422,19 +421,19 @@ export async function exportBackup( case PurchaseStatus.Paying: propStatus = BackupProposalStatus.Proposed; break; - case PurchaseStatus.ProposalDownloadFailed: - case PurchaseStatus.PaymentAbortFinished: + case PurchaseStatus.FailedClaim: + case PurchaseStatus.AbortedIncompletePayment: propStatus = BackupProposalStatus.PermanentlyFailed; break; case PurchaseStatus.AbortingWithRefund: - case PurchaseStatus.ProposalRefused: + case PurchaseStatus.AbortedProposalRefused: propStatus = BackupProposalStatus.Refused; break; case PurchaseStatus.RepurchaseDetected: propStatus = BackupProposalStatus.Repurchase; break; default: { - const error: never = purch.purchaseStatus; + const error = purch.purchaseStatus; throw Error(`purchase status ${error} is not handled`); } } diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts b/packages/taler-wallet-core/src/operations/backup/import.ts index 296517162..5375a58bb 100644 --- a/packages/taler-wallet-core/src/operations/backup/import.ts +++ b/packages/taler-wallet-core/src/operations/backup/import.ts @@ -49,9 +49,7 @@ import { PurchasePayInfo, RefreshCoinStatus, RefreshSessionRecord, - RefundState, WalletContractData, - WalletRefundItem, WalletStoresV1, WgInfo, WithdrawalGroupStatus, @@ -65,7 +63,6 @@ import { GetReadOnlyAccess, GetReadWriteAccess } from "../../util/query.js"; import { makeCoinAvailable, makeTombstoneId, - makeTransactionId, TombstoneTag, } from "../common.js"; import { getExchangeDetails } from "../exchanges.js"; @@ -576,16 +573,16 @@ export async function importBackup( let proposalStatus: PurchaseStatus; switch (backupPurchase.proposal_status) { case BackupProposalStatus.Paid: - proposalStatus = PurchaseStatus.Paid; + proposalStatus = PurchaseStatus.Done; break; case BackupProposalStatus.Proposed: proposalStatus = PurchaseStatus.Proposed; break; case BackupProposalStatus.PermanentlyFailed: - proposalStatus = PurchaseStatus.PaymentAbortFinished; + proposalStatus = PurchaseStatus.AbortedIncompletePayment; break; case BackupProposalStatus.Refused: - proposalStatus = PurchaseStatus.ProposalRefused; + proposalStatus = PurchaseStatus.AbortedProposalRefused; break; case BackupProposalStatus.Repurchase: proposalStatus = PurchaseStatus.RepurchaseDetected; @@ -596,48 +593,48 @@ export async function importBackup( } } if (!existingPurchase) { - const refunds: { [refundKey: string]: WalletRefundItem } = {}; - for (const backupRefund of backupPurchase.refunds) { - const key = `${backupRefund.coin_pub}-${backupRefund.rtransaction_id}`; - const coin = await tx.coins.get(backupRefund.coin_pub); - checkBackupInvariant(!!coin); - const denom = await tx.denominations.get([ - coin.exchangeBaseUrl, - coin.denomPubHash, - ]); - checkBackupInvariant(!!denom); - const common = { - coinPub: backupRefund.coin_pub, - executionTime: backupRefund.execution_time, - obtainedTime: backupRefund.obtained_time, - refundAmount: Amounts.stringify(backupRefund.refund_amount), - refundFee: Amounts.stringify(denom.fees.feeRefund), - rtransactionId: backupRefund.rtransaction_id, - totalRefreshCostBound: Amounts.stringify( - backupRefund.total_refresh_cost_bound, - ), - }; - switch (backupRefund.type) { - case BackupRefundState.Applied: - refunds[key] = { - type: RefundState.Applied, - ...common, - }; - break; - case BackupRefundState.Failed: - refunds[key] = { - type: RefundState.Failed, - ...common, - }; - break; - case BackupRefundState.Pending: - refunds[key] = { - type: RefundState.Pending, - ...common, - }; - break; - } - } + //const refunds: { [refundKey: string]: WalletRefundItem } = {}; + // for (const backupRefund of backupPurchase.refunds) { + // const key = `${backupRefund.coin_pub}-${backupRefund.rtransaction_id}`; + // const coin = await tx.coins.get(backupRefund.coin_pub); + // checkBackupInvariant(!!coin); + // const denom = await tx.denominations.get([ + // coin.exchangeBaseUrl, + // coin.denomPubHash, + // ]); + // checkBackupInvariant(!!denom); + // const common = { + // coinPub: backupRefund.coin_pub, + // executionTime: backupRefund.execution_time, + // obtainedTime: backupRefund.obtained_time, + // refundAmount: Amounts.stringify(backupRefund.refund_amount), + // refundFee: Amounts.stringify(denom.fees.feeRefund), + // rtransactionId: backupRefund.rtransaction_id, + // totalRefreshCostBound: Amounts.stringify( + // backupRefund.total_refresh_cost_bound, + // ), + // }; + // switch (backupRefund.type) { + // case BackupRefundState.Applied: + // refunds[key] = { + // type: RefundState.Applied, + // ...common, + // }; + // break; + // case BackupRefundState.Failed: + // refunds[key] = { + // type: RefundState.Failed, + // ...common, + // }; + // break; + // case BackupRefundState.Pending: + // refunds[key] = { + // type: RefundState.Pending, + // ...common, + // }; + // break; + // } + // } const parsedContractTerms = codecForMerchantContractTerms().decode( backupPurchase.contract_terms_raw, ); @@ -694,7 +691,7 @@ export async function importBackup( posConfirmation: backupPurchase.pos_confirmation, lastSessionId: undefined, download, - refunds, + //refunds, claimToken: backupPurchase.claim_token, downloadSessionId: backupPurchase.download_session_id, merchantBaseUrl: backupPurchase.merchant_base_url, |