nakama/frontend/src/utils/musicApi.js

79 lines
2.3 KiB
JavaScript
Raw Normal View History

2025-12-15 07:28:47 +00:00
import api from './api'
// Поиск музыки
export const searchMusic = async (query, type = 'all', params = {}) => {
const response = await api.get('/music/search', {
params: { q: query, type, ...params }
})
return response.data
}
// Получить список треков
export const getTracks = async (params = {}) => {
const response = await api.get('/music/tracks', { params })
return response.data
}
// Получить трек по ID
export const getTrack = async (trackId) => {
const response = await api.get(`/music/tracks/${trackId}`)
return response.data.track
}
// Получить альбом с треками
export const getAlbum = async (albumId) => {
const response = await api.get(`/music/albums/${albumId}`)
return response.data
}
// Загрузить трек
export const uploadTrack = async (formData) => {
const response = await api.post('/music/upload-track', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
return response.data
}
// Загрузить альбом (ZIP)
export const uploadAlbum = async (formData) => {
const response = await api.post('/music/upload-album', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
return response.data
}
// Добавить в избранное
export const addToFavorites = async (trackId) => {
const response = await api.post(`/music/favorites/${trackId}`)
return response.data
}
// Удалить из избранного
export const removeFromFavorites = async (trackId) => {
const response = await api.delete(`/music/favorites/${trackId}`)
return response.data
}
// Получить избранные треки
export const getFavorites = async (params = {}) => {
const response = await api.get('/music/favorites', { params })
return response.data
}
// Отметить прослушивание
export const playTrack = async (trackId) => {
const response = await api.post(`/music/tracks/${trackId}/play`)
return response.data
}
// Отправить трек в Telegram
export const sendTrackToTelegram = async (trackId) => {
const response = await api.post('/bot/send-track', { trackId })
return response.data
}