using DocumentService.Client.Interfaces; using DocumentService.Client.Models.Requests; using Microsoft.Extensions.Logging; using System.Net.Http; namespace DocumentService.Client.Clients; /// /// Implementation of Swiss QR Code extraction client. /// public class SwissQrCodeClient(HttpClient httpClient, ILogger logger) : BaseDocumentClient(httpClient, logger), ISwissQrCodeClient { /// public async Task ExtractSwissQrCodeAsync(Stream pdfStream, bool raw = false, CancellationToken cancellationToken = default) { var endpoint = $"/api/pdf/qr-code/extract-swiss?raw={raw}"; var result = await SendMultipartAsync( endpoint, pdfStream, "document.pdf", cancellationToken); return result ?? throw new InvalidOperationException("API returned null response"); } /// public async Task ExtractSwissQrCodeAsync(byte[] pdfBytes, bool raw = false, CancellationToken cancellationToken = default) { var endpoint = $"/api/pdf/qr-code/extract-swiss?raw={raw}"; var request = new ExtractSwissQrCodeBase64Request { Base64Pdf = ToBase64(pdfBytes) }; var result = await SendJsonAsync( endpoint, request, cancellationToken); return result ?? throw new InvalidOperationException("API returned null response"); } }