Ya perdí el hilo de los cambios pero ahi van.

This commit is contained in:
2025-05-23 15:47:39 -03:00
parent e7e185a9cb
commit 3c1fe15b1f
141 changed files with 9764 additions and 190 deletions

View File

@@ -0,0 +1,48 @@
import apiClient from '../apiClient';
import type { CancionDto } from '../../models/dtos/Radios/CancionDto';
import type { CreateCancionDto } from '../../models/dtos/Radios/CreateCancionDto';
import type { UpdateCancionDto } from '../../models/dtos/Radios/UpdateCancionDto';
interface GetAllCancionesParams {
temaFilter?: string | null;
interpreteFilter?: string | null;
idRitmoFilter?: number | null;
}
const getAllCanciones = async (filters: GetAllCancionesParams): Promise<CancionDto[]> => {
const params: Record<string, string | number> = {};
if (filters.temaFilter) params.tema = filters.temaFilter; // Backend espera 'tema'
if (filters.interpreteFilter) params.interprete = filters.interpreteFilter; // Backend espera 'interprete'
if (filters.idRitmoFilter) params.idRitmo = filters.idRitmoFilter; // Backend espera 'idRitmo'
const response = await apiClient.get<CancionDto[]>('/canciones', { params });
return response.data;
};
const getCancionById = async (id: number): Promise<CancionDto> => {
const response = await apiClient.get<CancionDto>(`/canciones/${id}`);
return response.data;
};
const createCancion = async (data: CreateCancionDto): Promise<CancionDto> => {
const response = await apiClient.post<CancionDto>('/canciones', data);
return response.data;
};
const updateCancion = async (id: number, data: UpdateCancionDto): Promise<void> => {
await apiClient.put(`/canciones/${id}`, data);
};
const deleteCancion = async (id: number): Promise<void> => {
await apiClient.delete(`/canciones/${id}`);
};
const cancionService = {
getAllCanciones,
getCancionById,
createCancion,
updateCancion,
deleteCancion,
};
export default cancionService;

View File

@@ -0,0 +1,20 @@
import apiClient from '../apiClient';
import type { GenerarListaRadioRequestDto } from '../../models/dtos/Radios/GenerarListaRadioRequestDto';
// No esperamos un DTO de respuesta complejo, sino un archivo.
interface GenerarListaRadioParams extends GenerarListaRadioRequestDto {}
const generarListaRadio = async (params: GenerarListaRadioParams): Promise<Blob> => {
// El backend devuelve un archivo (FileContentResult con "application/zip")
// Axios necesita responseType: 'blob' para manejar descargas de archivos.
const response = await apiClient.post('/radios/listas/generar', params, {
responseType: 'blob',
});
return response.data; // Esto será un Blob
};
const radioListaService = {
generarListaRadio,
};
export default radioListaService;

View File

@@ -0,0 +1,40 @@
import apiClient from '../apiClient';
import type { RitmoDto } from '../../models/dtos/Radios/RitmoDto';
import type { CreateRitmoDto } from '../../models/dtos/Radios/CreateRitmoDto';
import type { UpdateRitmoDto } from '../../models/dtos/Radios/UpdateRitmoDto';
const getAllRitmos = async (nombreFilter?: string): Promise<RitmoDto[]> => {
const params: Record<string, string> = {};
if (nombreFilter) params.nombre = nombreFilter; // El backend espera 'nombre'
const response = await apiClient.get<RitmoDto[]>('/ritmos', { params });
return response.data;
};
const getRitmoById = async (id: number): Promise<RitmoDto> => {
const response = await apiClient.get<RitmoDto>(`/ritmos/${id}`);
return response.data;
};
const createRitmo = async (data: CreateRitmoDto): Promise<RitmoDto> => {
const response = await apiClient.post<RitmoDto>('/ritmos', data);
return response.data;
};
const updateRitmo = async (id: number, data: UpdateRitmoDto): Promise<void> => {
await apiClient.put(`/ritmos/${id}`, data);
};
const deleteRitmo = async (id: number): Promise<void> => {
await apiClient.delete(`/ritmos/${id}`);
};
const ritmoService = {
getAllRitmos,
getRitmoById,
createRitmo,
updateRitmo,
deleteRitmo,
};
export default ritmoService;