diff --git a/README.md b/README.md index 7eca9cb..e1b5b72 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ using System; using SumUp; using var client = new SumUpClient(); -var response = await client.Checkouts.List(); +var response = await client.Checkouts.ListAsync(); foreach (var checkout in response.Data ?? Array.Empty()) { @@ -56,10 +56,7 @@ using SumUp; using var client = new SumUpClient(); -// Merchant profile contains the merchant code required when creating checkouts -var merchantResponse = await client.Merchant.GetAsync(); -var merchantCode = merchantResponse.Data?.MerchantProfile?.MerchantCode - ?? throw new InvalidOperationException("Merchant code not returned."); +var merchantCode = "your-merchant-code"; var checkoutReference = $"checkout-{Guid.NewGuid():N}"; @@ -104,6 +101,28 @@ var readerCheckout = await client.Readers.CreateCheckoutAsync( Console.WriteLine($"Reader checkout created: {readerCheckout.Data?.Data?.ClientTransactionId}"); ``` +### Handling errors + +Catch `ApiException` to inspect an unsuccessful API response. Problem responses +provide typed details: + +```csharp +using SumUp.Http; + +try +{ + await client.Checkouts.GetAsync("your-checkout-id"); +} +catch (ApiException error) +{ + if (error.Problem is { } problem) + Console.WriteLine($"{problem.Type}: {problem.Detail}"); +} +``` + +`StatusCode`, `ResponseBody`, and `Headers` provide the HTTP status, original +response text, and headers. + ### Handling events Create a handler with your endpoint's signing secret and a fallback for unregistered event types: @@ -136,7 +155,7 @@ See [the ASP.NET Core example](examples/Events) for a complete HTTP endpoint. ## Examples - `examples/Basic` – lists recent checkouts to sanity check your API token. -- `examples/CardReaderCheckout` – mirrors the `../sumup-rs/examples/card_reader_checkout.rs` sample by listing the merchant’s paired readers and creating a €10 checkout on the first available device. +- `examples/CardReaderCheckout` – lists the merchant’s paired readers and creates a €10 checkout on the first available device. - `examples/OAuth2` – starts a local OAuth2 Authorization Code flow with PKCE, exchanges the callback code for an access token, and fetches merchant information using the returned `merchant_code`. - `examples/Events` – runs a minimal ASP.NET Core endpoint with signature verification, typed event callbacks, and resource fetching. diff --git a/codegen/internal/generator/templates/client.tmpl b/codegen/internal/generator/templates/client.tmpl index 72d00a7..dadbc2a 100644 --- a/codegen/internal/generator/templates/client.tmpl +++ b/codegen/internal/generator/templates/client.tmpl @@ -97,7 +97,7 @@ public sealed partial class {{ .ClientName }}Client case {{ .StatusCodeLiteral }}: { var errorForStatus{{ .StatusCodeLiteral }} = _client.TryDeserialize<{{ .ErrorType }}>(responseBody); - throw new ApiException<{{ .ErrorType }}>(response.StatusCode, errorForStatus{{ .StatusCodeLiteral }}, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException<{{ .ErrorType }}>(response.StatusCode, errorForStatus{{ .StatusCodeLiteral }}, responseBody, response.RequestMessage?.RequestUri, response.Headers); } {{- end }} {{- end }} @@ -110,14 +110,14 @@ public sealed partial class {{ .ClientName }}Client {{- end }} {{- if $defaultError }} var defaultError = _client.TryDeserialize<{{ $defaultError }}>(responseBody); - throw new ApiException<{{ $defaultError }}>(response.StatusCode, defaultError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException<{{ $defaultError }}>(response.StatusCode, defaultError, responseBody, response.RequestMessage?.RequestUri, response.Headers); {{- else }} var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); {{- end }} {{- else }} var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); {{- end }} } @@ -209,7 +209,7 @@ public sealed partial class {{ .ClientName }}Client case {{ .StatusCodeLiteral }}: { var errorForStatus{{ .StatusCodeLiteral }} = _client.TryDeserialize<{{ .ErrorType }}>(responseBody); - throw new ApiException<{{ .ErrorType }}>(response.StatusCode, errorForStatus{{ .StatusCodeLiteral }}, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException<{{ .ErrorType }}>(response.StatusCode, errorForStatus{{ .StatusCodeLiteral }}, responseBody, response.RequestMessage?.RequestUri, response.Headers); } {{- end }} {{- end }} @@ -222,14 +222,14 @@ public sealed partial class {{ .ClientName }}Client {{- end }} {{- if $defaultErrorAsync }} var defaultError = _client.TryDeserialize<{{ $defaultErrorAsync }}>(responseBody); - throw new ApiException<{{ $defaultErrorAsync }}>(response.StatusCode, defaultError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException<{{ $defaultErrorAsync }}>(response.StatusCode, defaultError, responseBody, response.RequestMessage?.RequestUri, response.Headers); {{- else }} var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); {{- end }} {{- else }} var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); {{- end }} } diff --git a/src/SumUp.Tests/ApiExceptionTests.cs b/src/SumUp.Tests/ApiExceptionTests.cs new file mode 100644 index 0000000..4850f9a --- /dev/null +++ b/src/SumUp.Tests/ApiExceptionTests.cs @@ -0,0 +1,54 @@ +using System.Net; +using System.Net.Http; +using SumUp.Http; +using Xunit; + +namespace SumUp.Tests; + +public class ApiExceptionTests +{ + [Fact] + public void BaseCatchExposesTheTypedProblemAndHeaders() + { + var problem = new Problem { Type = "about:blank", Detail = "Invalid amount" }; + using var response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Headers.Add("Retry-After", "10"); + ApiException error = new ApiException(response.StatusCode, problem, "raw", null, response.Headers); + Assert.Same(problem, error.Problem); + Assert.Equal("Invalid amount", error.Problem!.Detail); + Assert.Same(response.Headers, error.Headers); + Assert.Equal("raw", error.ResponseBody); + } + + [Theory] + [InlineData("Invalid amount", "Bad request", "Invalid amount")] + [InlineData(null, "Bad request", "Bad request")] + public void ProblemDetailsAppearInMessages(string? detail, string title, string expected) + { + var problem = new Problem { Type = "about:blank", Detail = detail, Title = title }; + var payload = System.Text.Json.JsonSerializer.Serialize(problem); + ApiException typed = new ApiException(HttpStatusCode.BadRequest, problem, payload, null); + var fallback = new ApiException(HttpStatusCode.BadRequest, null, payload, null); + Assert.Equal($"SumUp API request failed with status code 400. {expected}", typed.Message); + Assert.Equal(typed.Message, fallback.Message); + } + + [Fact] + public void IncompleteProblemIsNotExposedByTheConvenienceProperty() + { + var problem = new Problem { Detail = "Missing type" }; + ApiException error = new ApiException(HttpStatusCode.BadRequest, problem, "{}", null); + Assert.Null(error.Problem); + } + + [Theory] + [InlineData("{invalid")] + [InlineData("Bad gateway")] + [InlineData("{\"message\":\"Unknown\"}")] + public void NonProblemBodyRemainsAvailable(string body) + { + var error = new ApiException(HttpStatusCode.BadGateway, null, body, null); + Assert.Null(error.Problem); + Assert.Equal(body, error.ResponseBody); + } +} diff --git a/src/SumUp/CheckoutsClient.g.cs b/src/SumUp/CheckoutsClient.g.cs index 85bece7..9621f17 100644 --- a/src/SumUp/CheckoutsClient.g.cs +++ b/src/SumUp/CheckoutsClient.g.cs @@ -58,26 +58,26 @@ public ApiResponse Create(CheckoutCreateRequest body, RequestOptions? case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -123,26 +123,26 @@ public async Task> CreateAsync(CheckoutCreateRequest body, case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -192,16 +192,16 @@ public ApiResponse CreateApplePaySession(string checkoutId, Checko case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var jsonStream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var document = JsonDocument.Parse(jsonStream); @@ -251,16 +251,16 @@ public async Task> CreateApplePaySessionAsync(string c case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var jsonStream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var document = await JsonDocument.ParseAsync(jsonStream, cancellationToken: effectiveCancellationToken).ConfigureAwait(false); @@ -305,21 +305,21 @@ public ApiResponse Deactivate(string checkoutId, RequestOptions? reque case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -364,21 +364,21 @@ public async Task> DeactivateAsync(string checkoutId, Requ case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -423,16 +423,16 @@ public ApiResponse Get(string checkoutId, RequestOptions? reque case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -477,16 +477,16 @@ public async Task> GetAsync(string checkoutId, Requ case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -532,11 +532,11 @@ public ApiResponse> List(CheckoutsListOptions? opti case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize>(stream, _client.SerializerOptions); @@ -582,11 +582,11 @@ public async Task>> ListAsync(Checkouts case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync>(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -635,11 +635,11 @@ public ApiResponse ListAvailablePa case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -688,11 +688,11 @@ public async Task> Lis case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -742,26 +742,26 @@ public ApiResponse Process(string checkoutId, ProcessC case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -811,26 +811,26 @@ public async Task> ProcessAsync(string che case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -880,16 +880,16 @@ public ApiResponse Update(string checkoutId, CheckoutUpdateRequest bod case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -939,16 +939,16 @@ public async Task> UpdateAsync(string checkoutId, Checkout case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/CustomersClient.g.cs b/src/SumUp/CustomersClient.g.cs index 36d861e..0c2c5a2 100644 --- a/src/SumUp/CustomersClient.g.cs +++ b/src/SumUp/CustomersClient.g.cs @@ -58,26 +58,26 @@ public ApiResponse Create(Customer body, RequestOptions? requestOption case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -123,26 +123,26 @@ public async Task> CreateAsync(Customer body, RequestOptio case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -189,26 +189,26 @@ public ApiResponse DeactivatePaymentInstrument(string customerId, case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -253,26 +253,26 @@ public async Task> DeactivatePaymentInstrumentAsync(st case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -315,21 +315,21 @@ public ApiResponse Get(string customerId, RequestOptions? requestOptio case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -374,21 +374,21 @@ public async Task> GetAsync(string customerId, RequestOpti case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -433,21 +433,21 @@ public ApiResponse> ListPaymentInstrument case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize>(stream, _client.SerializerOptions); @@ -492,21 +492,21 @@ public async Task>> ListPayme case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync>(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -556,21 +556,21 @@ public ApiResponse Update(string customerId, CustomersUpdateRequest bo case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -620,21 +620,21 @@ public async Task> UpdateAsync(string customerId, Customer case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/Http/ApiClient.cs b/src/SumUp/Http/ApiClient.cs index 558d750..b7abb33 100644 --- a/src/SumUp/Http/ApiClient.cs +++ b/src/SumUp/Http/ApiClient.cs @@ -119,7 +119,7 @@ internal HttpContent CreateContent(object body, string? contentType) ? null : await ReadContentAsStringAsync(response.Content, effectiveCancellationToken).ConfigureAwait(false); var fallbackError = TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/Http/ApiException.cs b/src/SumUp/Http/ApiException.cs index 785757f..9731299 100644 --- a/src/SumUp/Http/ApiException.cs +++ b/src/SumUp/Http/ApiException.cs @@ -1,5 +1,6 @@ using System; using System.Net; +using System.Net.Http.Headers; using System.Text; using System.Text.Json; @@ -11,8 +12,42 @@ namespace SumUp.Http; public class ApiException : Exception { public ApiException(HttpStatusCode statusCode, ApiError? error, string? payload, Uri? requestUri) - : this(statusCode, error, payload, requestUri, BuildMessage(statusCode, error)) + : this(statusCode, error, payload, requestUri, (HttpResponseHeaders?)null) { } + + public ApiException(HttpStatusCode statusCode, ApiError? error, string? payload, Uri? requestUri, HttpResponseHeaders? headers) + : this(statusCode, error, payload, requestUri, headers, ParseProblem(payload)) { } + + private ApiException(HttpStatusCode statusCode, ApiError? error, string? payload, Uri? requestUri, HttpResponseHeaders? headers, Problem? problem) + : this(statusCode, error, payload, requestUri, BuildMessage(statusCode, error, problem), headers) { + Problem = problem; + } + + /// Typed Problem details, when the API returned a Problem response. + public virtual Problem? Problem { get; } + + public HttpResponseHeaders? Headers { get; } + + private static Problem? ParseProblem(string? payload) + { + if (string.IsNullOrEmpty(payload)) + { + return null; + } + try + { + using var json = JsonDocument.Parse(payload); + if (json.RootElement.ValueKind != JsonValueKind.Object || + !json.RootElement.TryGetProperty("type", out var type) || type.ValueKind != JsonValueKind.String) + { + return null; + } + return JsonSerializer.Deserialize(payload); + } + catch (JsonException) + { + return null; + } } public HttpStatusCode StatusCode { get; } @@ -56,8 +91,13 @@ protected virtual void AppendDetails(StringBuilder builder) } } - private static string BuildMessage(HttpStatusCode statusCode, ApiError? error) + protected static string BuildMessage(HttpStatusCode statusCode, ApiError? error, Problem? problem) { + var detail = !string.IsNullOrWhiteSpace(problem?.Detail) ? problem!.Detail : problem?.Title; + if (!string.IsNullOrWhiteSpace(detail)) + { + return $"SumUp API request failed with status code {(int)statusCode}. {detail}"; + } if (!string.IsNullOrWhiteSpace(error?.Code) || !string.IsNullOrWhiteSpace(error?.Message)) { var code = string.IsNullOrWhiteSpace(error?.Code) ? "" : $" ({error!.Code})"; @@ -69,25 +109,34 @@ private static string BuildMessage(HttpStatusCode statusCode, ApiError? error) } protected ApiException(HttpStatusCode statusCode, ApiError? error, string? payload, Uri? requestUri, string message) + : this(statusCode, error, payload, requestUri, message, null) { } + + protected ApiException(HttpStatusCode statusCode, ApiError? error, string? payload, Uri? requestUri, string message, HttpResponseHeaders? headers) : base(message) { StatusCode = statusCode; Error = error; ResponseBody = payload; RequestUri = requestUri; + Headers = headers; } } public class ApiException : ApiException where TError : class { public ApiException(HttpStatusCode statusCode, TError? error, string? payload, Uri? requestUri) - : base(statusCode, null, payload, requestUri, BuildMessage(statusCode)) + : this(statusCode, error, payload, requestUri, (HttpResponseHeaders?)null) { } + + public ApiException(HttpStatusCode statusCode, TError? error, string? payload, Uri? requestUri, HttpResponseHeaders? headers) + : base(statusCode, null, payload, requestUri, BuildMessage(statusCode, null, error as Problem), headers) { Error = error; } public new TError? Error { get; } + public override Problem? Problem => Error is Problem { Type: not null } problem ? problem : null; + protected override void AppendDetails(StringBuilder builder) { base.AppendDetails(builder); @@ -96,11 +145,6 @@ protected override void AppendDetails(StringBuilder builder) builder.Append("Error: ").Append(Error).AppendLine(); } } - - private static string BuildMessage(HttpStatusCode statusCode) - { - return $"SumUp API request failed with status code {(int)statusCode}."; - } } public sealed class ApiError diff --git a/src/SumUp/MembersClient.g.cs b/src/SumUp/MembersClient.g.cs index 2e90ff5..4fbf1df 100644 --- a/src/SumUp/MembersClient.g.cs +++ b/src/SumUp/MembersClient.g.cs @@ -62,21 +62,21 @@ public ApiResponse Create(string merchantCode, MembersCreateRequest body case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 429: { var errorForStatus429 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus429, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus429, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -126,21 +126,21 @@ public async Task> CreateAsync(string merchantCode, MembersC case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 429: { var errorForStatus429 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus429, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus429, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -187,16 +187,16 @@ public ApiResponse Delete(string merchantCode, string memberId, Re case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -241,16 +241,16 @@ public async Task> DeleteAsync(string merchantCode, st case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -295,11 +295,11 @@ public ApiResponse Get(string merchantCode, string memberId, RequestOpti case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -346,11 +346,11 @@ public async Task> GetAsync(string merchantCode, string memb case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -404,11 +404,11 @@ public ApiResponse List(string merchantCode, MembersListOpt case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -462,11 +462,11 @@ public async Task> ListAsync(string merchantCod case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -518,26 +518,26 @@ public ApiResponse Update(string merchantCode, string memberId, MembersU case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -589,26 +589,26 @@ public async Task> UpdateAsync(string merchantCode, string m case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/MembershipsClient.g.cs b/src/SumUp/MembershipsClient.g.cs index 296889b..9e9e825 100644 --- a/src/SumUp/MembershipsClient.g.cs +++ b/src/SumUp/MembershipsClient.g.cs @@ -68,16 +68,16 @@ public ApiResponse List(MembershipsListOptions? options case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -133,16 +133,16 @@ public async Task> ListAsync(MembershipsLis case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/MerchantsClient.g.cs b/src/SumUp/MerchantsClient.g.cs index 3887e83..46f4df8 100644 --- a/src/SumUp/MerchantsClient.g.cs +++ b/src/SumUp/MerchantsClient.g.cs @@ -56,11 +56,11 @@ public ApiResponse Get(string merchantCode, RequestOptions? requestOpt case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -105,11 +105,11 @@ public async Task> GetAsync(string merchantCode, RequestOp case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -156,11 +156,11 @@ public ApiResponse GetPerson(string merchantCode, string personId, Reque case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -207,11 +207,11 @@ public async Task> GetPersonAsync(string merchantCode, strin case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -256,11 +256,11 @@ public ApiResponse ListPersons(string merchantCode, Req case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -305,11 +305,11 @@ public async Task> ListPersonsAsync(string case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/PayoutsClient.g.cs b/src/SumUp/PayoutsClient.g.cs index ffc8a39..2cf55c3 100644 --- a/src/SumUp/PayoutsClient.g.cs +++ b/src/SumUp/PayoutsClient.g.cs @@ -64,16 +64,16 @@ public ApiResponse> List(string merchantCode, Payou case 400: { var errorForStatus400 = _client.TryDeserialize>(responseBody); - throw new ApiException>(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException>(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize>(stream, _client.SerializerOptions); @@ -125,16 +125,16 @@ public async Task>> ListAsync(string me case 400: { var errorForStatus400 = _client.TryDeserialize>(responseBody); - throw new ApiException>(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException>(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync>(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/ReadersClient.g.cs b/src/SumUp/ReadersClient.g.cs index d4511d4..5a8bce6 100644 --- a/src/SumUp/ReadersClient.g.cs +++ b/src/SumUp/ReadersClient.g.cs @@ -61,21 +61,21 @@ public ApiResponse Create(string merchantCode, ReadersCreateRequest body case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -125,21 +125,21 @@ public async Task> CreateAsync(string merchantCode, ReadersC case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -191,26 +191,26 @@ public ApiResponse CreateCheckout(string merchantC case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -262,26 +262,26 @@ public async Task> CreateCheckoutAsync case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -333,26 +333,26 @@ public ApiResponse CreateGoCheckout(string merchantCode, case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -404,26 +404,26 @@ public async Task> CreateGoCheckoutAsync(stri case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -470,11 +470,11 @@ public ApiResponse Delete(string merchantCode, string readerId, Re case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -519,11 +519,11 @@ public async Task> DeleteAsync(string merchantCode, st case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -571,11 +571,11 @@ public ApiResponse Get(string merchantCode, string readerId, ReadersGetO case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -625,11 +625,11 @@ public async Task> GetAsync(string merchantCode, string read case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -678,16 +678,16 @@ public ApiResponse GetCheckout(string merchantCode, s case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -736,16 +736,16 @@ public async Task> GetCheckoutAsync(strin case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -792,21 +792,21 @@ public ApiResponse GetReaderSettings(string merchantC case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -853,21 +853,21 @@ public async Task> GetReaderSettingsAsync case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -914,21 +914,21 @@ public ApiResponse GetStatus(string merchantCode, string readerI case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -975,21 +975,21 @@ public async Task> GetStatusAsync(string merchantCod case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -1034,11 +1034,11 @@ public ApiResponse List(string merchantCode, RequestOptions case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -1083,11 +1083,11 @@ public async Task> ListAsync(string merchantCod case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -1134,26 +1134,26 @@ public ApiResponse TerminateCheckout(string merchantCode, string r case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -1200,26 +1200,26 @@ public async Task> TerminateCheckoutAsync(string merch case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -1271,16 +1271,16 @@ public ApiResponse Update(string merchantCode, string readerId, ReadersU case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -1332,16 +1332,16 @@ public async Task> UpdateAsync(string merchantCode, string r case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -1393,26 +1393,26 @@ public ApiResponse UpdateReaderSettings(string mer case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -1464,26 +1464,26 @@ public async Task> UpdateReaderSetting case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/ReceiptsClient.g.cs b/src/SumUp/ReceiptsClient.g.cs index 85603b9..119750f 100644 --- a/src/SumUp/ReceiptsClient.g.cs +++ b/src/SumUp/ReceiptsClient.g.cs @@ -60,21 +60,21 @@ public ApiResponse Get(string transactionId, ReceiptsGetOptions options case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -123,21 +123,21 @@ public async Task> GetAsync(string transactionId, ReceiptsG case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/RolesClient.g.cs b/src/SumUp/RolesClient.g.cs index 55f9348..f9ff17a 100644 --- a/src/SumUp/RolesClient.g.cs +++ b/src/SumUp/RolesClient.g.cs @@ -61,16 +61,16 @@ public ApiResponse Create(string merchantCode, RolesCreateRequest body, Re case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -120,16 +120,16 @@ public async Task> CreateAsync(string merchantCode, RolesCreat case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -176,16 +176,16 @@ public ApiResponse Delete(string merchantCode, string roleId, Requ case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -230,16 +230,16 @@ public async Task> DeleteAsync(string merchantCode, st case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } return ApiResponse.From(default, response.StatusCode, response.Headers, response.RequestMessage?.RequestUri); } @@ -284,11 +284,11 @@ public ApiResponse Get(string merchantCode, string roleId, RequestOptions? case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -335,11 +335,11 @@ public async Task> GetAsync(string merchantCode, string roleId case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -384,11 +384,11 @@ public ApiResponse List(string merchantCode, RequestOptions? case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -433,11 +433,11 @@ public async Task> ListAsync(string merchantCode, case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -489,16 +489,16 @@ public ApiResponse Update(string merchantCode, string roleId, RolesUpdateR case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -550,16 +550,16 @@ public async Task> UpdateAsync(string merchantCode, string rol case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/TokensClient.g.cs b/src/SumUp/TokensClient.g.cs index efa6e4e..f93f149 100644 --- a/src/SumUp/TokensClient.g.cs +++ b/src/SumUp/TokensClient.g.cs @@ -61,21 +61,21 @@ public ApiResponse Create(string merchantCode, TokensCreateRequest body, case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -125,21 +125,21 @@ public async Task> CreateAsync(string merchantCode, TokensCre case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); diff --git a/src/SumUp/TransactionsClient.g.cs b/src/SumUp/TransactionsClient.g.cs index f32a91e..14a3581 100644 --- a/src/SumUp/TransactionsClient.g.cs +++ b/src/SumUp/TransactionsClient.g.cs @@ -63,16 +63,16 @@ public ApiResponse Get(string merchantCode, TransactionsGetOpti case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -123,16 +123,16 @@ public async Task> GetAsync(string merchantCode, Tr case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -192,16 +192,16 @@ public ApiResponse List(string merchantCode, Transacti case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var result = JsonSerializer.Deserialize(stream, _client.SerializerOptions); @@ -261,16 +261,16 @@ public async Task> ListAsync(string mercha case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 401: { var errorForStatus401 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus401, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var stream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var result = await JsonSerializer.DeserializeAsync(stream, _client.SerializerOptions, effectiveCancellationToken).ConfigureAwait(false); @@ -322,31 +322,31 @@ public ApiResponse Refund(string merchantCode, string transactionI case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var jsonStream = ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).GetAwaiter().GetResult(); var document = JsonDocument.Parse(jsonStream); @@ -398,31 +398,31 @@ public async Task> RefundAsync(string merchantCode, st case 400: { var errorForStatus400 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus400, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 403: { var errorForStatus403 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus403, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 404: { var errorForStatus404 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus404, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 409: { var errorForStatus409 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus409, responseBody, response.RequestMessage?.RequestUri, response.Headers); } case 422: { var errorForStatus422 = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, errorForStatus422, responseBody, response.RequestMessage?.RequestUri, response.Headers); } } var fallbackError = _client.TryDeserialize(responseBody); - throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri); + throw new ApiException(response.StatusCode, fallbackError, responseBody, response.RequestMessage?.RequestUri, response.Headers); } using var jsonStream = await ApiClient.ReadContentAsStreamAsync(response.Content!, effectiveCancellationToken).ConfigureAwait(false); var document = await JsonDocument.ParseAsync(jsonStream, cancellationToken: effectiveCancellationToken).ConfigureAwait(false);