From 4e1aee11c9454c64c061f97c4ddb84f2113333b6 Mon Sep 17 00:00:00 2001 From: Avni BALIKCI Date: Mon, 17 Nov 2025 16:26:57 +0300 Subject: [PATCH] Add waiting payment refund --- .../java/io/craftgate/adapter/PaymentAdapter.java | 6 ++++++ .../request/RefundWaitingPaymentRequest.java | 11 +++++++++++ .../response/RefundWaitingPaymentResponse.java | 10 ++++++++++ src/test/java/io/craftgate/sample/PaymentSample.java | 11 +++++++++++ 4 files changed, 38 insertions(+) create mode 100644 src/main/java/io/craftgate/request/RefundWaitingPaymentRequest.java create mode 100644 src/main/java/io/craftgate/response/RefundWaitingPaymentResponse.java diff --git a/src/main/java/io/craftgate/adapter/PaymentAdapter.java b/src/main/java/io/craftgate/adapter/PaymentAdapter.java index c7d48fa..4c1f68d 100644 --- a/src/main/java/io/craftgate/adapter/PaymentAdapter.java +++ b/src/main/java/io/craftgate/adapter/PaymentAdapter.java @@ -160,6 +160,12 @@ public PaymentRefundResponse refundPayment(RefundPaymentRequest refundPaymentReq refundPaymentRequest, PaymentRefundResponse.class); } + public RefundWaitingPaymentResponse refundWaitingPayment(RefundWaitingPaymentRequest refundWaitingPaymentRequest) { + String path = "/payment/v1/refunds/refund-waiting-payment"; + return HttpClient.post(requestOptions.getBaseUrl() + path, createHeaders(refundWaitingPaymentRequest, path, requestOptions), + refundWaitingPaymentRequest, RefundWaitingPaymentResponse.class); + } + public PaymentRefundResponse retrievePaymentRefund(Long id) { String path = "/payment/v1/refunds/" + id; return HttpClient.get(requestOptions.getBaseUrl() + path, createHeaders(path, requestOptions), PaymentRefundResponse.class); diff --git a/src/main/java/io/craftgate/request/RefundWaitingPaymentRequest.java b/src/main/java/io/craftgate/request/RefundWaitingPaymentRequest.java new file mode 100644 index 0000000..2cce8be --- /dev/null +++ b/src/main/java/io/craftgate/request/RefundWaitingPaymentRequest.java @@ -0,0 +1,11 @@ +package io.craftgate.request; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class RefundWaitingPaymentRequest { + + private Long paymentId; +} diff --git a/src/main/java/io/craftgate/response/RefundWaitingPaymentResponse.java b/src/main/java/io/craftgate/response/RefundWaitingPaymentResponse.java new file mode 100644 index 0000000..83efe42 --- /dev/null +++ b/src/main/java/io/craftgate/response/RefundWaitingPaymentResponse.java @@ -0,0 +1,10 @@ +package io.craftgate.response; + +import io.craftgate.model.RefundStatus; +import lombok.Data; + +@Data +public class RefundWaitingPaymentResponse { + + private RefundStatus status; +} diff --git a/src/test/java/io/craftgate/sample/PaymentSample.java b/src/test/java/io/craftgate/sample/PaymentSample.java index 0ade7a9..ccf6683 100644 --- a/src/test/java/io/craftgate/sample/PaymentSample.java +++ b/src/test/java/io/craftgate/sample/PaymentSample.java @@ -1836,6 +1836,17 @@ void refund_payment() { assertEquals(RefundStatus.SUCCESS, response.getStatus()); } + @Test + void refund_waiting_payment() { + RefundWaitingPaymentRequest request = RefundWaitingPaymentRequest.builder() + .paymentId(1L) + .build(); + + RefundWaitingPaymentResponse response = craftgate.payment().refundWaitingPayment(request); + assertNotNull(response); + assertEquals(RefundStatus.SUCCESS, response.getStatus()); + } + @Test void retrieve_payment_refund() { Long paymentRefundId = 1L;