nakama/frontend/src/utils/musicApi.js

79 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}