Ya perdí el hilo de los cambios pero ahi van.
This commit is contained in:
48
Frontend/src/services/Radios/cancionService.ts
Normal file
48
Frontend/src/services/Radios/cancionService.ts
Normal 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;
|
||||
20
Frontend/src/services/Radios/radioListaService.ts
Normal file
20
Frontend/src/services/Radios/radioListaService.ts
Normal 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;
|
||||
40
Frontend/src/services/Radios/ritmoService.ts
Normal file
40
Frontend/src/services/Radios/ritmoService.ts
Normal 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;
|
||||
Reference in New Issue
Block a user