Fix getBancas
This commit is contained in:
		| @@ -83,7 +83,6 @@ public class ElectoralApiService : IElectoralApiService | ||||
|         var client = _httpClientFactory.CreateClient("ElectoralApiClient"); | ||||
|         var requestUri = $"/api/resultados/getBancas?distritoId={distritoId}&categoriaId={categoriaId}"; | ||||
|  | ||||
|         // Añadimos el seccionProvincialId a la URL SÓLO si tiene un valor. | ||||
|         if (!string.IsNullOrEmpty(seccionProvincialId)) | ||||
|         { | ||||
|             requestUri += $"&seccionProvincialId={seccionProvincialId}"; | ||||
| @@ -91,8 +90,42 @@ public class ElectoralApiService : IElectoralApiService | ||||
|  | ||||
|         var request = new HttpRequestMessage(HttpMethod.Get, requestUri); | ||||
|         request.Headers.Add("Authorization", $"Bearer {authToken}"); | ||||
|         var response = await client.SendAsync(request); | ||||
|         return response.IsSuccessStatusCode ? await response.Content.ReadFromJsonAsync<RepartoBancasDto>() : null; | ||||
|  | ||||
|         HttpResponseMessage response; | ||||
|         try | ||||
|         { | ||||
|             response = await client.SendAsync(request); | ||||
|         } | ||||
|         catch (Exception ex) | ||||
|         { | ||||
|             // Captura errores de red (ej. la API se cae momentáneamente) | ||||
|             _logger.LogError(ex, "La petición HTTP a getBancas falló. URI: {requestUri}", requestUri); | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         // Comprobamos que la respuesta fue exitosa Y que contiene datos antes de intentar leerla. | ||||
|         if (response.IsSuccessStatusCode && response.Content?.Headers.ContentLength > 0) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 // Solo si hay contenido, intentamos deserializar. | ||||
|                 return await response.Content.ReadFromJsonAsync<RepartoBancasDto>(); | ||||
|             } | ||||
|             catch (JsonException ex) | ||||
|             { | ||||
|                 // Si el contenido no es un JSON válido, lo registramos y devolvemos null. | ||||
|                 _logger.LogWarning(ex, "La API devolvió una respuesta no-JSON para getBancas. URI: {requestUri}, Status: {statusCode}", requestUri, response.StatusCode); | ||||
|                 return null; | ||||
|             } | ||||
|         } | ||||
|         else if (!response.IsSuccessStatusCode) | ||||
|         { | ||||
|             // Si la API devolvió un error HTTP, lo registramos. | ||||
|             _logger.LogWarning("La API devolvió un código de error {statusCode} para getBancas. URI: {requestUri}", response.StatusCode, requestUri); | ||||
|         } | ||||
|  | ||||
|         // Si la respuesta fue 200 OK pero con cuerpo vacío, o si fue un error HTTP, devolvemos null. | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public async Task<List<string>?> GetTelegramasTotalizadosAsync(string authToken, string distritoId, string seccionId, int? categoriaId = null) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user