2025-10-28 11:45:51 -03:00
|
|
|
// frontend/src/services/apiService.ts
|
|
|
|
|
|
|
|
|
|
import axios from 'axios';
|
2025-10-28 12:56:42 -03:00
|
|
|
import type { Configuracion, Titular } from '../types';
|
2025-10-28 11:45:51 -03:00
|
|
|
|
2025-10-28 12:26:49 -03:00
|
|
|
const API_URL = 'http://localhost:5174/api';
|
2025-10-28 11:45:51 -03:00
|
|
|
|
|
|
|
|
const apiClient = axios.create({
|
|
|
|
|
baseURL: API_URL,
|
2025-10-28 11:54:36 -03:00
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2025-10-28 11:45:51 -03:00
|
|
|
});
|
|
|
|
|
|
2025-10-28 14:12:05 -03:00
|
|
|
export interface ActualizarTitularPayload {
|
|
|
|
|
texto: string;
|
|
|
|
|
viñeta: string | null;
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-28 11:45:51 -03:00
|
|
|
export const obtenerTitulares = async (): Promise<Titular[]> => {
|
|
|
|
|
const response = await apiClient.get('/titulares');
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
2025-10-28 11:54:36 -03:00
|
|
|
export const crearTitularManual = async (texto: string): Promise<void> => {
|
|
|
|
|
await apiClient.post('/titulares', { texto });
|
|
|
|
|
};
|
|
|
|
|
|
2025-10-28 11:45:51 -03:00
|
|
|
export const eliminarTitular = async (id: number): Promise<void> => {
|
|
|
|
|
await apiClient.delete(`/titulares/${id}`);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
interface ReordenarPayload {
|
|
|
|
|
id: number;
|
|
|
|
|
nuevoOrden: number;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const actualizarOrdenTitulares = async (payload: ReordenarPayload[]): Promise<void> => {
|
|
|
|
|
await apiClient.put('/titulares/reordenar', payload);
|
2025-10-28 12:56:42 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const obtenerConfiguracion = async (): Promise<Configuracion> => {
|
|
|
|
|
const response = await apiClient.get('/configuracion');
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
2025-10-29 11:36:20 -03:00
|
|
|
export const guardarConfiguracion = async (config: Omit<Configuracion, 'scrapingActivo'>): Promise<void> => {
|
2025-10-28 12:56:42 -03:00
|
|
|
await apiClient.post('/configuracion', config);
|
2025-10-28 13:19:24 -03:00
|
|
|
};
|
|
|
|
|
|
2025-10-29 11:36:20 -03:00
|
|
|
export const getEstadoProceso = async (): Promise<{ activo: boolean }> => {
|
|
|
|
|
const response = await apiClient.get('/estado-proceso');
|
|
|
|
|
return response.data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const setEstadoProceso = async (activo: boolean): Promise<void> => {
|
|
|
|
|
await apiClient.post('/estado-proceso', { activo });
|
|
|
|
|
};
|
|
|
|
|
|
2025-10-28 13:19:24 -03:00
|
|
|
export const generarCsvManual = async (): Promise<void> => {
|
|
|
|
|
await apiClient.post('/acciones/generar-csv');
|
2025-10-28 14:12:05 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const actualizarTitular = async (id: number, payload: ActualizarTitularPayload): Promise<void> => {
|
|
|
|
|
await apiClient.put(`/titulares/${id}`, payload);
|
2025-10-28 11:45:51 -03:00
|
|
|
};
|