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
|
|||
|
|
}
|
|||
|
|
|