blob: cd66464a3fb3d8507004afd7b5b8910c70482ebd [file] [log] [blame]
import request from './request'
/**
* 上传种子
* @param {FormData} formData - 包含种子文件和相关信息的表单数据
* @returns {Promise}
*/
export function uploadTorrent(formData) {
return request({
url: '/torrent/upload',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 搜索种子
* @param {Object} searchParams - 搜索参数
* @param {string} searchParams.keyword - 搜索关键词
* @param {string} searchParams.category - 分类
* @param {string} searchParams.sortBy - 排序字段
* @param {string} searchParams.sortOrder - 排序方向
* @param {number} searchParams.page - 页码
* @param {number} searchParams.entriesPerPage - 每页条数
* @returns {Promise}
*/
export function searchTorrents(searchParams) {
return request({
url: '/torrent/search',
method: 'post',
data: searchParams
}).catch(error => {
console.error('🚨 API请求失败:', {
url: '/torrent/search',
requestedURL: error.config?.url,
baseURL: error.config?.baseURL,
fullURL: error.config?.baseURL ? error.config.baseURL + error.config.url : error.config?.url,
status: error.response?.status,
statusText: error.response?.statusText
})
throw error
})
}
/**
* 获取分类列表
* @returns {Promise}
*/
export function getCategories() {
return request({
url: '/category/list', // 注意这里不需要加 /api,已经在代理中配置了
method: 'get'
})
}
/**
* 获取标签列表
* @returns {Promise}
* 暂时还没有获取标签的列表
*/
export function getTags() {
console.log('调用获取标签列表API...')
// 后端没有标签的Controller,返回模拟数据
return new Promise((resolve) => {
setTimeout(() => {
resolve({
data: [
{ id: 1, name: 'linux' },
{ id: 2, name: 'ios' },
{ id: 3, name: 'ubuntu' }
]
})
}, 100)
})
}
/**
* 获取种子详情
* @param {string} infoHash - 种子的info hash
* @returns {Promise}
*/
export function getTorrentDetail(infoHash) {
return request({
url: `/torrent/${infoHash}`,
method: 'get'
})
}