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