Files
muzick/frontend/src/services/artistService.ts
T

40 lines
1.1 KiB
TypeScript

import api from './api';
import type { Artist, ArtistWithAlbums } from '../types';
export interface ListArtistsParams {
limit?: number;
offset?: number;
}
export const artistService = {
// GET /api/artists
async listArtists(params?: ListArtistsParams): Promise<Artist[]> {
const res = await api.get<Artist[]>('/artists', { params });
return res.data;
},
// GET /api/artists/:id (returns artist + albums)
async getArtist(id: string): Promise<ArtistWithAlbums> {
const res = await api.get<ArtistWithAlbums>(`/artists/${id}`);
return res.data;
},
// POST /api/artists
async createArtist(data: Partial<Artist>): Promise<Artist> {
const res = await api.post<Artist>('/artists', data);
return res.data;
},
// PUT /api/artists/:id
async updateArtist(id: string, data: Partial<Artist>): Promise<Artist> {
const res = await api.put<Artist>(`/artists/${id}`, data);
return res.data;
},
// DELETE /api/artists/:id
async deleteArtist(id: string): Promise<{ status: string }> {
const res = await api.delete<{ status: string }>(`/artists/${id}`);
return res.data;
},
};