Files
TitularesApp/frontend/src/services/apiService.ts

66 lines
2.0 KiB
TypeScript
Raw Normal View History

// frontend/src/services/apiService.ts
import axios from 'axios';
import type { Configuracion, Titular } from '../types';
2025-10-29 18:11:25 -03:00
// La URL base viene de la variable de entorno
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || '';
const apiClient = axios.create({
2025-10-29 18:11:25 -03:00
// Construimos la URL completa para las llamadas a la API REST
baseURL: `${API_BASE_URL}/api`,
headers: { 'Content-Type': 'application/json' },
});
export interface ActualizarTitularPayload {
texto: string;
viñeta: string | null;
}
export const obtenerTitulares = async (): Promise<Titular[]> => {
const response = await apiClient.get('/titulares');
return response.data;
};
export const crearTitularManual = async (texto: string): Promise<void> => {
await apiClient.post('/titulares', { texto });
};
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);
};
export const obtenerConfiguracion = async (): Promise<Configuracion> => {
const response = await apiClient.get('/configuracion');
return response.data;
};
export const guardarConfiguracion = async (config: Omit<Configuracion, 'scrapingActivo'>): Promise<void> => {
await apiClient.post('/configuracion', config);
};
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 });
};
export const generarCsvManual = async (): Promise<void> => {
await apiClient.post('/acciones/generar-csv');
};
export const actualizarTitular = async (id: number, payload: ActualizarTitularPayload): Promise<void> => {
await apiClient.put(`/titulares/${id}`, payload);
};