From 6d3ba75bf311557fd08c2544f10a1abc4259720f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armando=20Rodr=C3=ADguez?= <127134616+armando-rodriguez-cko@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:37:22 +0100 Subject: [PATCH] Adds compiled submitted evidence endpoint. Update Hosted Payment Request (#379) * Add disabled_payment_methods in HostedPaymentRequest.cs * Add compiled submitted evidence endpoint to disputes --- .../DisputeCompiledSubmittedEvidenceResponse.cs | 9 +++++++++ src/CheckoutSdk/Disputes/DisputesClient.cs | 9 +++++++++ src/CheckoutSdk/Disputes/IDisputesClient.cs | 3 +++ .../Payments/Hosted/HostedPaymentRequest.cs | 6 ++++-- .../Disputes/DisputesClientTest.cs | 17 +++++++++++++++++ .../Disputes/DisputesIntegrationTest.cs | 7 +++++++ 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/CheckoutSdk/Disputes/DisputeCompiledSubmittedEvidenceResponse.cs diff --git a/src/CheckoutSdk/Disputes/DisputeCompiledSubmittedEvidenceResponse.cs b/src/CheckoutSdk/Disputes/DisputeCompiledSubmittedEvidenceResponse.cs new file mode 100644 index 00000000..6626cca1 --- /dev/null +++ b/src/CheckoutSdk/Disputes/DisputeCompiledSubmittedEvidenceResponse.cs @@ -0,0 +1,9 @@ +using Checkout.Common; + +namespace Checkout.Disputes +{ + public class DisputeCompiledSubmittedEvidenceResponse : Resource + { + public string FileId { get; set; } + } +} \ No newline at end of file diff --git a/src/CheckoutSdk/Disputes/DisputesClient.cs b/src/CheckoutSdk/Disputes/DisputesClient.cs index dbf06acf..2529a8e1 100644 --- a/src/CheckoutSdk/Disputes/DisputesClient.cs +++ b/src/CheckoutSdk/Disputes/DisputesClient.cs @@ -8,6 +8,7 @@ public class DisputesClient : FilesClient, IDisputesClient { private const string DisputesPath = "disputes"; private const string EvidencePath = "evidence"; + private const string SubmittedPath = "submitted"; private const string AcceptPath = "accept"; private const string Schemefiles = "schemefiles"; @@ -65,6 +66,14 @@ public Task SubmitEvidence(string disputeId, CancellationToken ca null, cancellationToken, null); } + + public Task GetCompiledSubmittedEvidence(string disputeId, + CancellationToken cancellationToken = default) + { + CheckoutUtils.ValidateParams("disputeId", disputeId); + return ApiClient.Get(BuildPath(DisputesPath, disputeId, EvidencePath, SubmittedPath), + SdkAuthorization(), cancellationToken); + } public Task GetDisputeSchemeFiles(string disputeId, CancellationToken cancellationToken = default) diff --git a/src/CheckoutSdk/Disputes/IDisputesClient.cs b/src/CheckoutSdk/Disputes/IDisputesClient.cs index 03c19124..3d2a55b4 100644 --- a/src/CheckoutSdk/Disputes/IDisputesClient.cs +++ b/src/CheckoutSdk/Disputes/IDisputesClient.cs @@ -19,6 +19,9 @@ Task PutEvidence(string disputeId, DisputeEvidenceRequest dispute Task SubmitEvidence(string disputeId, CancellationToken cancellationToken = default); + Task GetCompiledSubmittedEvidence(string disputeId, + CancellationToken cancellationToken = default); + Task GetDisputeSchemeFiles(string disputeId, CancellationToken cancellationToken = default); } } \ No newline at end of file diff --git a/src/CheckoutSdk/Payments/Hosted/HostedPaymentRequest.cs b/src/CheckoutSdk/Payments/Hosted/HostedPaymentRequest.cs index 0cd391ad..70b21dfc 100644 --- a/src/CheckoutSdk/Payments/Hosted/HostedPaymentRequest.cs +++ b/src/CheckoutSdk/Payments/Hosted/HostedPaymentRequest.cs @@ -52,9 +52,11 @@ public class HostedPaymentRequest public DateTime? CaptureOn { get; set; } public IList AllowPaymentMethods { get; set; } - + //Not available on Previous - + + public IList DisabledPaymentMethods { get; set; } + public string ProcessingChannelId { get; set; } public IList AmountAllocations { get; set; } diff --git a/test/CheckoutSdkTest/Disputes/DisputesClientTest.cs b/test/CheckoutSdkTest/Disputes/DisputesClientTest.cs index e500f7da..97f6ed3e 100644 --- a/test/CheckoutSdkTest/Disputes/DisputesClientTest.cs +++ b/test/CheckoutSdkTest/Disputes/DisputesClientTest.cs @@ -131,6 +131,23 @@ private async Task ShouldSubmitEvidence() response.ShouldNotBeNull(); } + + [Fact] + private async Task ShouldGetCompiledSubmittedEvidence() + { + const string disputeId = "dispute_id"; + + _apiClient.Setup(apiClient => + apiClient.Get($"disputes/{disputeId}/evidence/submitted", _authorization, + CancellationToken.None)) + .ReturnsAsync(() => new DisputeCompiledSubmittedEvidenceResponse()); + + IDisputesClient client = new DisputesClient(_apiClient.Object, _configuration.Object); + + var response = await client.GetCompiledSubmittedEvidence(disputeId); + + response.ShouldNotBeNull(); + } [Fact] private async Task ShouldGetDisputeSchemeFiles() diff --git a/test/CheckoutSdkTest/Disputes/DisputesIntegrationTest.cs b/test/CheckoutSdkTest/Disputes/DisputesIntegrationTest.cs index 714200e6..421b2561 100644 --- a/test/CheckoutSdkTest/Disputes/DisputesIntegrationTest.cs +++ b/test/CheckoutSdkTest/Disputes/DisputesIntegrationTest.cs @@ -1,5 +1,6 @@ using Checkout.Payments; using Shouldly; +using System; using System.Threading.Tasks; using Xunit; @@ -118,6 +119,12 @@ private async Task ShouldTestFullDisputesWorkflow() //Submit the dispute await DefaultApi.DisputesClient().SubmitEvidence(disputeId); + + //Get compiled submitted evidence + var compiledSubmittedEvidenceResponse = await DefaultApi.DisputesClient().GetCompiledSubmittedEvidence(disputeId); + compiledSubmittedEvidenceResponse.ShouldNotBeNull(); + compiledSubmittedEvidenceResponse.FileId.ShouldNotBeNull(); + } private static bool HasItems(DisputesQueryResponse obj)