aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/wallet.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-05-05 19:03:44 +0200
committerFlorian Dold <florian@dold.me>2023-05-07 21:51:02 +0200
commit7f0edb6a783d9a50f94f65c815c1280baecaac89 (patch)
treeb4f3bc24fece1f651e8c2f69fc0fcf52e1d6f330 /packages/taler-wallet-core/src/wallet.ts
parenta0bf83fbb5db026389cc7d203adcff050d5a1b28 (diff)
downloadwallet-core-7f0edb6a783d9a50f94f65c815c1280baecaac89.tar.xz
wallet-core: refund DD37 refactoring
Diffstat (limited to 'packages/taler-wallet-core/src/wallet.ts')
-rw-r--r--packages/taler-wallet-core/src/wallet.ts33
1 files changed, 20 insertions, 13 deletions
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
index ed174e33b..d76aa4ec9 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -48,6 +48,7 @@ import {
RefreshReason,
TalerError,
TalerErrorCode,
+ TransactionType,
URL,
ValidateIbanResponse,
WalletCoreVersion,
@@ -95,6 +96,7 @@ import {
codecForRetryTransactionRequest,
codecForSetCoinSuspendedRequest,
codecForSetWalletDeviceIdRequest,
+ codecForStartRefundQueryRequest,
codecForSuspendTransaction,
codecForTestPayArgs,
codecForTransactionByIdRequest,
@@ -188,13 +190,11 @@ import {
} from "./operations/exchanges.js";
import { getMerchantInfo } from "./operations/merchants.js";
import {
- applyRefund,
- applyRefundFromPurchaseId,
confirmPay,
getContractTermsDetails,
preparePayForUri,
- prepareRefund,
processPurchase,
+ startRefundQueryForUri,
} from "./operations/pay-merchant.js";
import {
checkPeerPullPaymentInitiation,
@@ -233,6 +233,7 @@ import {
deleteTransaction,
getTransactionById,
getTransactions,
+ parseTransactionIdentifier,
resumeTransaction,
retryTransaction,
suspendTransaction,
@@ -276,6 +277,7 @@ import {
WalletCoreApiClient,
WalletCoreResponseType,
} from "./wallet-api-types.js";
+import { startQueryRefund } from "./operations/pay-merchant.js";
const logger = new Logger("wallet.ts");
@@ -1141,14 +1143,6 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
await acceptExchangeTermsOfService(ws, req.exchangeBaseUrl, req.etag);
return {};
}
- case WalletApiOperation.ApplyRefund: {
- const req = codecForApplyRefundRequest().decode(payload);
- return await applyRefund(ws, req.talerRefundUri);
- }
- case WalletApiOperation.ApplyRefundFromPurchaseId: {
- const req = codecForApplyRefundFromPurchaseIdRequest().decode(payload);
- return await applyRefundFromPurchaseId(ws, req.purchaseId);
- }
case WalletApiOperation.AcceptBankIntegratedWithdrawal: {
const req =
codecForAcceptBankIntegratedWithdrawalRequest().decode(payload);
@@ -1292,9 +1286,22 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
const req = codecForPrepareTipRequest().decode(payload);
return await prepareTip(ws, req.talerTipUri);
}
- case WalletApiOperation.PrepareRefund: {
+ case WalletApiOperation.StartRefundQueryForUri: {
const req = codecForPrepareRefundRequest().decode(payload);
- return await prepareRefund(ws, req.talerRefundUri);
+ await startRefundQueryForUri(ws, req.talerRefundUri);
+ return {};
+ }
+ case WalletApiOperation.StartRefundQuery: {
+ const req = codecForStartRefundQueryRequest().decode(payload);
+ const txIdParsed = parseTransactionIdentifier(req.transactionId);
+ if (!txIdParsed) {
+ throw Error("invalid transaction ID");
+ }
+ if (txIdParsed.tag !== TransactionType.Payment) {
+ throw Error("expected payment transaction ID");
+ }
+ await startQueryRefund(ws, txIdParsed.proposalId);
+ return {};
}
case WalletApiOperation.AcceptTip: {
const req = codecForAcceptTipRequest().decode(payload);