56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // src/apiService.ts
 | |
| import axios from 'axios';
 | |
| import type { MunicipioSimple, MunicipioDetalle, ResumenProvincial, ProyeccionBancas } from './types';
 | |
| 
 | |
| // La URL base de tu API. En un proyecto real, esto iría en un archivo .env
 | |
| const API_BASE_URL = 'http://localhost:5217/api'; // Ajusta el puerto si es necesario
 | |
| 
 | |
| const apiClient = axios.create({
 | |
|   baseURL: API_BASE_URL,
 | |
|   headers: {
 | |
|     'Content-Type': 'application/json',
 | |
|   },
 | |
| });
 | |
| 
 | |
| /**
 | |
|  * Obtiene los resultados para colorear el mapa inicial.
 | |
|  */
 | |
| export const getResultadosParaMapa = async (): Promise<any[]> => { // Usamos any[] temporalmente
 | |
|   const response = await apiClient.get('/resultados/mapa');
 | |
|   // Mapeamos la respuesta para que coincida con lo que el frontend espera
 | |
|   return response.data.map((item: any) => ({
 | |
|     municipioId: item.partidoId, // La propiedad en el frontend se llama municipioId
 | |
|     agrupacionGanadoraId: item.agrupacionGanadoraId,
 | |
|   }));
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Obtiene la lista de todos los municipios con sus IDs y nombres.
 | |
|  */
 | |
| export const getMunicipios = async (): Promise<MunicipioSimple[]> => {
 | |
|   const response = await apiClient.get('/catalogos/municipios');
 | |
|   return response.data;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Obtiene el detalle completo de los resultados para un municipio específico.
 | |
|  */
 | |
| export const getDetallePorMunicipio = async (partidoId: string): Promise<MunicipioDetalle> => {
 | |
|   const response = await apiClient.get(`/resultados/partido/${partidoId}`);
 | |
|   return response.data;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * Obtiene el resumen de resultados a nivel provincial.
 | |
|  * El distritoId para la PBA es "02" según la estructura de la API.
 | |
|  */
 | |
| export const getResumenProvincial = async (): Promise<ResumenProvincial> => {
 | |
|   // Hardcodeamos el distritoId '02' para Buenos Aires
 | |
|   const response = await apiClient.get('/resultados/provincia/02');
 | |
|   return response.data;
 | |
| };
 | |
| 
 | |
| export const getBancasPorSeccion = async (seccionId: string): Promise<ProyeccionBancas> => {
 | |
|   const response = await apiClient.get(`/resultados/bancas/${seccionId}`);
 | |
|   return response.data;
 | |
| }; |