Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/CheckoutSdk/Transfers/TransferSourceRequest.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
namespace Checkout.Transfers
using Checkout.Common;

namespace Checkout.Transfers
{
public class TransferSourceRequest
{
public string Id { get; set; }

public long? Amount { get; set; }

public Currency? Currency { get; set; }
}
}
4 changes: 2 additions & 2 deletions src/CheckoutSdk/Transfers/TransfersClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ public TransfersClient(IApiClient apiClient,
}

public async Task<CreateTransferResponse> InitiateTransferOfFunds(CreateTransferRequest createTransferRequest,
string idempotencyKey = null,
string idempotencyKey,
CancellationToken cancellationToken = default)
{
CheckoutUtils.ValidateParams("createTransferRequest", createTransferRequest);
CheckoutUtils.ValidateParams("createTransferRequest", createTransferRequest, "idempotencyKey", idempotencyKey);
return await ApiClient.Post<CreateTransferResponse>(TransfersPath,
SdkAuthorization(),
createTransferRequest,
Expand Down
2 changes: 1 addition & 1 deletion test/CheckoutSdkTest/Transfers/TransfersClientTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public async Task ShouldInitiateTransferOfFunds()
createTransferRequest, It.IsAny<CancellationToken>(), It.IsAny<string>()))
.ReturnsAsync(createTransferResponse);

var response = await _transfersClient.InitiateTransferOfFunds(createTransferRequest);
var response = await _transfersClient.InitiateTransferOfFunds(createTransferRequest, "idempotency-key");

response.ShouldNotBeNull();
response.ShouldBe(createTransferResponse);
Expand Down
7 changes: 5 additions & 2 deletions test/CheckoutSdkTest/Transfers/TransfersIntegrationTest.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using Checkout.Common;
using Shouldly;
using System;
using System.Threading.Tasks;
Expand All @@ -19,7 +20,7 @@ private async Task ShouldInitiateAndRetrieveTransferOfFunds()
var createTransferRequest =
new CreateTransferRequest
{
Source = new TransferSourceRequest {Amount = 200, Id = "ent_kidtcgc3ge5unf4a5i6enhnr5m"},
Source = new TransferSourceRequest {Amount = 200, Id = "ent_kidtcgc3ge5unf4a5i6enhnr5m", Currency = Currency.GBP},
Destination = new TransferDestinationRequest {Id = "ent_w4jelhppmfiufdnatam37wrfc4"},
TransferType = TransferType.Commission
};
Expand All @@ -40,6 +41,8 @@ private async Task ShouldInitiateAndRetrieveTransferOfFunds()
transferDetailsResponse.RequestedOn.ShouldNotBeNull();
transferDetailsResponse.Source.ShouldNotBeNull();
transferDetailsResponse.Source.EntityId.ShouldNotBeNull();
transferDetailsResponse.Source.Amount.ShouldBe(200);
transferDetailsResponse.Source.Currency.ShouldBe(Currency.GBP);
transferDetailsResponse.Destination.ShouldNotBeNull();
transferDetailsResponse.Destination.EntityId.ShouldNotBeNull();
}
Expand All @@ -50,7 +53,7 @@ private async Task ShouldInitiateTransferOfFundsIdempotently()
var createTransferRequest =
new CreateTransferRequest
{
Source = new TransferSourceRequest {Amount = 100, Id = "ent_kidtcgc3ge5unf4a5i6enhnr5m"},
Source = new TransferSourceRequest {Amount = 100, Id = "ent_kidtcgc3ge5unf4a5i6enhnr5m", Currency = Currency.GBP},
Destination = new TransferDestinationRequest {Id = "ent_w4jelhppmfiufdnatam37wrfc4"},
TransferType = TransferType.Commission
};
Expand Down
Loading