79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
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
|
||
}
|
||
|