Feat Widgets 1541
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// src/services/apiService.ts
|
||||
import axios from 'axios';
|
||||
import { triggerLogout } from '../context/authUtils';
|
||||
import type { AgrupacionPolitica, UpdateAgrupacionData, Bancada, LogoAgrupacionCategoria } from '../types';
|
||||
import type { AgrupacionPolitica, UpdateAgrupacionData, Bancada, LogoAgrupacionCategoria, MunicipioSimple } from '../types';
|
||||
|
||||
const AUTH_API_URL = 'http://localhost:5217/api/auth';
|
||||
const ADMIN_API_URL = 'http://localhost:5217/api/admin';
|
||||
@@ -10,7 +10,7 @@ const adminApiClient = axios.create({
|
||||
baseURL: ADMIN_API_URL,
|
||||
});
|
||||
|
||||
// --- INTERCEPTORES (una sola vez) ---
|
||||
// --- INTERCEPTORES ---
|
||||
|
||||
// Interceptor de Peticiones: Añade el token JWT a cada llamada
|
||||
adminApiClient.interceptors.request.use(
|
||||
@@ -63,44 +63,51 @@ export const updateAgrupacion = async (id: string, data: UpdateAgrupacionData):
|
||||
|
||||
// 3. Ordenamiento de Agrupaciones
|
||||
export const updateOrden = async (camara: 'diputados' | 'senadores', ids: string[]): Promise<void> => {
|
||||
await adminApiClient.put(`/agrupaciones/orden-${camara}`, ids);
|
||||
await adminApiClient.put(`/agrupaciones/orden-${camara}`, ids);
|
||||
};
|
||||
|
||||
// 4. Gestión de Bancas y Ocupantes
|
||||
export const getBancadas = async (camara: 'diputados' | 'senadores'): Promise<Bancada[]> => {
|
||||
const camaraId = camara === 'diputados' ? 0 : 1;
|
||||
const response = await adminApiClient.get(`/bancadas/${camaraId}`);
|
||||
return response.data;
|
||||
const camaraId = camara === 'diputados' ? 0 : 1;
|
||||
const response = await adminApiClient.get(`/bancadas/${camaraId}`);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export interface UpdateBancadaData {
|
||||
agrupacionPoliticaId: string | null;
|
||||
nombreOcupante: string | null;
|
||||
fotoUrl: string | null;
|
||||
periodo: string | null;
|
||||
agrupacionPoliticaId: string | null;
|
||||
nombreOcupante: string | null;
|
||||
fotoUrl: string | null;
|
||||
periodo: string | null;
|
||||
}
|
||||
|
||||
export const updateBancada = async (bancadaId: number, data: UpdateBancadaData): Promise<void> => {
|
||||
await adminApiClient.put(`/bancadas/${bancadaId}`, data);
|
||||
await adminApiClient.put(`/bancadas/${bancadaId}`, data);
|
||||
};
|
||||
|
||||
// 5. Configuración General
|
||||
export type ConfiguracionResponse = Record<string, string>;
|
||||
|
||||
export const getConfiguracion = async (): Promise<ConfiguracionResponse> => {
|
||||
const response = await adminApiClient.get('/configuracion');
|
||||
return response.data;
|
||||
const response = await adminApiClient.get('/configuracion');
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const updateConfiguracion = async (data: Record<string, string>): Promise<void> => {
|
||||
await adminApiClient.put('/configuracion', data);
|
||||
await adminApiClient.put('/configuracion', data);
|
||||
};
|
||||
|
||||
export const getLogos = async (): Promise<LogoAgrupacionCategoria[]> => {
|
||||
const response = await adminApiClient.get('/logos');
|
||||
return response.data;
|
||||
const response = await adminApiClient.get('/logos');
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const updateLogos = async (data: LogoAgrupacionCategoria[]): Promise<void> => {
|
||||
await adminApiClient.put('/logos', data);
|
||||
await adminApiClient.put('/logos', data);
|
||||
};
|
||||
|
||||
export const getMunicipiosForAdmin = async (): Promise<MunicipioSimple[]> => {
|
||||
// Ahora usa adminApiClient, que apunta a /api/admin/
|
||||
// La URL final será /api/admin/catalogos/municipios
|
||||
const response = await adminApiClient.get('/catalogos/municipios');
|
||||
return response.data;
|
||||
};
|
||||
Reference in New Issue
Block a user