using DocumentService.Client.Interfaces; using DocumentService.Client.Models.Requests; using Microsoft.Extensions.Logging; using System.Net.Http; namespace DocumentService.Client.Clients; /// /// Implementation of PDF validation client. /// public class PdfValidationClient(HttpClient httpClient, ILogger logger) : BaseDocumentClient(httpClient, logger), IPdfValidationClient { /// public async Task ValidatePdfAsync(Stream pdfStream, CancellationToken cancellationToken = default) { var result = await SendMultipartAsync( "/api/pdf/validation/validate", pdfStream, "document.pdf", cancellationToken); return result ?? throw new InvalidOperationException("API returned null response"); } /// public async Task ValidatePdfAsync(byte[] pdfBytes, CancellationToken cancellationToken = default) { var request = new ValidatePdfBase64Request { Base64Pdf = ToBase64(pdfBytes) }; var result = await SendJsonAsync( "/api/pdf/validation/validate", request, cancellationToken); return result ?? throw new InvalidOperationException("API returned null response"); } /// public async Task ValidatePdfAAsync(Stream pdfStream, CancellationToken cancellationToken = default) { var result = await SendMultipartAsync( "/api/pdf/validation/validate-pdfa", pdfStream, "document.pdf", cancellationToken); return result ?? throw new InvalidOperationException("API returned null response"); } /// public async Task ValidatePdfAAsync(byte[] pdfBytes, CancellationToken cancellationToken = default) { var request = new ValidatePdfABase64Request { Base64Pdf = ToBase64(pdfBytes) }; var result = await SendJsonAsync( "/api/pdf/validation/validate-pdfa", request, cancellationToken); return result ?? throw new InvalidOperationException("API returned null response"); } }