blob: 6c56fce6c4f96c73e085b722e41cdeabc963d365 [file] [log] [blame]
// src/api/torrent.js
import { api } from './auth'; // 复用已有的axios实例
export const createTorrent = (torrentData, file) => {
const formData = new FormData();
const token = localStorage.getItem('token');
// 添加文件
if (file) {
formData.append('file', file);
}
// 通过这个方式就可以指定 ContentType 了
formData.append('body', JSON.stringify(torrentData))
console.log(formData);
return api.post('/torrent', formData, {
headers: {
'Content-Type': 'multipart/form-data',
'Authorization': `${token}`
},
});
};
export const getTorrents = (page = 1, size = 5) => {
return api.get('/torrent', {
params: { page, size }
});
};
export const getTorrentDetail = (torrentId) => {
return api.get(`/torrent/${torrentId}`).then(response => {
// 确保数据结构一致
if (response.data && response.data.data) {
return {
...response,
data: {
...response.data,
data: {
torrent: response.data.data.post || response.data.data.torrent,
comments: response.data.data.comments || []
}
}
};
}
return response;
});
};
export const likeTorrent = (torrentId) => {
return api.post(`/torrent/${torrentId}/like`);
};
export const addTorrentComment = (torrentId, commentData) => {
return api.post(`/torrent/${torrentId}/comments`, commentData);
};