diff --git a/TransactionProcessor.Client/ITransactionProcessorClient.cs b/TransactionProcessor.Client/ITransactionProcessorClient.cs index 4cea6fd8..1494ab84 100644 --- a/TransactionProcessor.Client/ITransactionProcessorClient.cs +++ b/TransactionProcessor.Client/ITransactionProcessorClient.cs @@ -113,6 +113,13 @@ Task CreateMerchantSchedule(String accessToken, CreateMerchantScheduleRequest createMerchantScheduleRequest, CancellationToken cancellationToken); + Task UpdateMerchantSchedule(String accessToken, + Guid estateId, + Guid merchantId, + Int32 year, + UpdateMerchantScheduleRequest updateMerchantScheduleRequest, + CancellationToken cancellationToken); + Task> GetMerchant(String accessToken, Guid estateId, Guid merchantId, diff --git a/TransactionProcessor.Client/TransactionProcessorClient.cs b/TransactionProcessor.Client/TransactionProcessorClient.cs index 863c3ef7..88ae4e6b 100644 --- a/TransactionProcessor.Client/TransactionProcessorClient.cs +++ b/TransactionProcessor.Client/TransactionProcessorClient.cs @@ -762,17 +762,41 @@ public async Task CreateMerchantSchedule(String accessToken, return Result.Success(); } catch (Exception ex) { - Exception exception = new($"Error creating merchant schedule for merchant {merchantId} for estate {estateId}.", ex); + Exception exception = new($"Error creating schedule for merchant {merchantId} for estate {estateId}.", ex); + + throw exception; + } + } + + public async Task UpdateMerchantSchedule(String accessToken, + Guid estateId, + Guid merchantId, + Int32 year, + UpdateMerchantScheduleRequest updateMerchantScheduleRequest, + CancellationToken cancellationToken) { + String requestUri = this.BuildRequestUrl($"/api/estates/{estateId}/merchants/{merchantId}/schedules/{year}"); + + try + { + var result = await this.SendHttpPatchRequest(requestUri, updateMerchantScheduleRequest, accessToken, cancellationToken); + if (result.IsFailed) + return ResultHelpers.CreateFailure(result); + + return Result.Success(); + } + catch (Exception ex) + { + Exception exception = new($"Error updating {year} schedule for merchant {merchantId} for estate {estateId}.", ex); throw exception; } } public async Task> GetMerchantSchedule(String accessToken, - Guid estateId, - Guid merchantId, - Int32 year, - CancellationToken cancellationToken) { + Guid estateId, + Guid merchantId, + Int32 year, + CancellationToken cancellationToken) { String requestUri = this.BuildRequestUrl($"/api/estates/{estateId}/merchants/{merchantId}/schedules/{year}"); try {