From 7ff93d8ef64d8ae832c2267192ce1f97bf914776 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Aug 2020 11:39:34 +0530 Subject: match latest refund API of the merchant --- packages/taler-wallet-core/src/operations/refund.ts | 14 ++++++-------- packages/taler-wallet-core/src/types/talerTypes.ts | 18 ++++++++++++++++-- 2 files changed, 22 insertions(+), 10 deletions(-) (limited to 'packages/taler-wallet-core') diff --git a/packages/taler-wallet-core/src/operations/refund.ts b/packages/taler-wallet-core/src/operations/refund.ts index fb39aa638..e9324712e 100644 --- a/packages/taler-wallet-core/src/operations/refund.ts +++ b/packages/taler-wallet-core/src/operations/refund.ts @@ -48,6 +48,7 @@ import { MerchantCoinRefundFailureStatus, codecForMerchantOrderStatusPaid, AmountString, + codecForMerchantOrderRefundPickupResponse, } from "../types/talerTypes"; import { guardOperationException } from "./errors"; import { getTimestampNow, Timestamp } from "../util/time"; @@ -472,25 +473,22 @@ async function processPurchaseQueryRefundImpl( return; } - const requestUrl = new URL( - `orders/${purchase.contractData.orderId}`, + `orders/${purchase.contractData.orderId}/refund`, purchase.contractData.merchantBaseUrl, ); - requestUrl.searchParams.set( - "h_contract", - purchase.contractData.contractTermsHash, - ); logger.trace(`making refund request to ${requestUrl.href}`); - const request = await ws.http.get(requestUrl.href); + const request = await ws.http.postJson(requestUrl.href, { + h_contract: purchase.contractData.contractTermsHash, + }); logger.trace("got json", JSON.stringify(await request.json(), undefined, 2)); const refundResponse = await readSuccessResponseJsonOrThrow( request, - codecForMerchantOrderStatusPaid(), + codecForMerchantOrderRefundPickupResponse(), ); await acceptRefunds( diff --git a/packages/taler-wallet-core/src/types/talerTypes.ts b/packages/taler-wallet-core/src/types/talerTypes.ts index 99f44ea25..f251b47d1 100644 --- a/packages/taler-wallet-core/src/types/talerTypes.ts +++ b/packages/taler-wallet-core/src/types/talerTypes.ts @@ -849,6 +849,13 @@ interface MerchantOrderStatusPaid { * Amount that was refunded in total. */ refund_amount: AmountString; +} + +interface MerchantOrderRefundResponse { + /** + * Amount that was refunded in total. + */ + refund_amount: AmountString; /** * Successful refunds for this payment, empty array for none. @@ -1265,12 +1272,19 @@ export const codecForMerchantOrderStatusPaid = (): Codec< MerchantOrderStatusPaid > => buildCodecForObject() - .property("merchant_pub", codecForString()) .property("refund_amount", codecForString()) .property("refunded", codecForBoolean) - .property("refunds", codecForList(codecForMerchantCoinRefundStatus())) .build("MerchantOrderStatusPaid"); +export const codecForMerchantOrderRefundPickupResponse = (): Codec< + MerchantOrderRefundResponse + > => + buildCodecForObject() + .property("merchant_pub", codecForString()) + .property("refund_amount", codecForString()) + .property("refunds", codecForList(codecForMerchantCoinRefundStatus())) + .build("MerchantOrderRefundPickupResponse"); + export const codecForMerchantOrderStatusUnpaid = (): Codec< MerchantOrderStatusUnpaid > => -- cgit v1.2.3