diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Services/DocumentService.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Services/DocumentService.cs index 1502225d..d6460a04 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Services/DocumentService.cs +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Services/DocumentService.cs @@ -55,4 +55,26 @@ public class DocumentService(IHttpClientFactory httpClientFactory) return await response.Content.ReadFromJsonAsync(_jsonOptions, cancel); } + + /// + /// Fetches sender document bytes by envelope id. + /// Uses GET /api/Document?EnvelopeId={envelopeId}. + /// + public async Task GetSenderDocumentBytesByEnvelopeIdAsync(int envelopeId, CancellationToken cancel = default) + { + using var http = httpClientFactory.CreateClient("EnvelopeGenerator.Server"); + var response = await http.GetAsync($"/api/Document?EnvelopeId={envelopeId}", cancel); + + if (!response.IsSuccessStatusCode) + { + var statusCode = (int)response.StatusCode; + var reasonPhrase = response.ReasonPhrase ?? "Unknown error"; + throw new HttpRequestException( + $"Failed to load sender document bytes. Status: {statusCode} ({reasonPhrase})", + null, + response.StatusCode); + } + + return await response.Content.ReadAsByteArrayAsync(cancel); + } }