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; | ||
|  | }; |