From 7e1e487e83e22f40b62a7aadcf7752bbfd2bbc99 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Wed, 20 Aug 2025 15:03:19 -0300 Subject: [PATCH] Fix Solicitud de Token 2 --- .../Services/ElectoralApiService.cs | 12 ++++++++---- .../Services/IElectoralApiService.cs | 3 +-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Elecciones-Web/src/Elecciones.Infrastructure/Services/ElectoralApiService.cs b/Elecciones-Web/src/Elecciones.Infrastructure/Services/ElectoralApiService.cs index bc2ba89..2ed7007 100644 --- a/Elecciones-Web/src/Elecciones.Infrastructure/Services/ElectoralApiService.cs +++ b/Elecciones-Web/src/Elecciones.Infrastructure/Services/ElectoralApiService.cs @@ -29,7 +29,7 @@ public class ElectoralApiService : IElectoralApiService _rateLimiter = rateLimiter; } - public async Task GetAuthTokenAsync() + public async Task GetAuthTokenAsync() { // "Pedir una ficha". Este método ahora devuelve un "lease" (permiso). // Si no hay fichas, esperará aquí automáticamente hasta que se rellene el cubo. @@ -42,14 +42,18 @@ public class ElectoralApiService : IElectoralApiService var username = _configuration["ElectoralApi:Username"]; var password = _configuration["ElectoralApi:Password"]; if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) return null; - var request = new HttpRequestMessage(HttpMethod.Get, "/api/createtoken/"); + + var request = new HttpRequestMessage(HttpMethod.Get, "/api/createtoken"); request.Headers.Add("username", username); request.Headers.Add("password", password); + var response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) return null; - var tokenResponse = await response.Content.ReadFromJsonAsync(); - return (tokenResponse is { Success: true, Data.AccessToken: not null }) ? tokenResponse.Data.AccessToken : null; + + // Ahora esto es válido, porque el método devuelve Task + return await response.Content.ReadFromJsonAsync(); } + // Si no se pudo obtener un permiso (ej. la cola está llena), devolvemos null. return null; } diff --git a/Elecciones-Web/src/Elecciones.Infrastructure/Services/IElectoralApiService.cs b/Elecciones-Web/src/Elecciones.Infrastructure/Services/IElectoralApiService.cs index 4fdb033..01b345a 100644 --- a/Elecciones-Web/src/Elecciones.Infrastructure/Services/IElectoralApiService.cs +++ b/Elecciones-Web/src/Elecciones.Infrastructure/Services/IElectoralApiService.cs @@ -7,8 +7,7 @@ namespace Elecciones.Infrastructure.Services; public interface IElectoralApiService { - Task GetAuthTokenAsync(); - + Task GetAuthTokenAsync(); // Métodos para catálogos Task GetCatalogoAmbitosAsync(string authToken, int categoriaId); Task?> GetAgrupacionesAsync(string authToken, string distritoId, int categoriaId);