blob: f226baee4c5e93b11fa3b6f9e3de197a53e0e51a [file] [log] [blame]
BirdNETMb0f71532025-05-26 17:37:33 +08001import { request } from '@umijs/max';
2import type {
3 RewardItem,
4 RewardListParams,
5} from '@/pages/Reward/data'; // 假设你把 data.d.ts 放这里
BirdNETM02a57e52025-06-05 00:27:31 +08006import type {
7 BtTorrent,
8 BtTorrentFile,
9 BtTorrentAnnounce,
10 BtTorrentTag,
11} from '@/pages/Torrent/data';
BirdNETM178aca62025-06-08 14:43:41 +080012
13
14export async function getTorrentID(rewardId: number): Promise<{ torrentId: number }> {
15 return request(`/api/reward/bt/${rewardId}`, {
16 method: 'GET'
17 });
18}
BirdNETMb0f71532025-05-26 17:37:33 +080019/** 获取悬赏任务列表 */
20export async function getRewardList(params?: RewardListParams) {
21 const queryString = params
22 ? `?${new URLSearchParams(params as Record<string, any>).toString()}`
23 : '';
24 const response = await request(`/api/reward/list${queryString}`, {
25 method: 'get',
26 });
27 if (!response || response.length === 0) {
28 return [{ id: 1, name: '虚假任务1', description: '这是一个虚假的任务描述' }, { id: 2, name: '虚假任务2', description: '这是另一个虚假的任务描述' }];
29 }
30 return response;
31}
32
33/** 获取悬赏任务详细信息 */
34export async function getReward(rewardId: number) {
35 return request(`/api/reward/${rewardId}`, {
36 method: 'get',
37 });
38}
39
40/** 新增悬赏任务 */
41export async function addReward(params: RewardItem) {
42 return request('/api/reward', {
43 method: 'post',
44 data: params,
45 });
46}
47
48/** 修改悬赏任务 */
49export async function updateReward(params: RewardItem) {
50 return request('/api/reward', {
51 method: 'put',
52 data: params,
53 });
54}
55
56/** 删除悬赏任务 */
57export async function removeReward(ids: string) {
58 return request(`/api/reward/${ids}`, {
59 method: 'delete',
60 });
BirdNETM02a57e52025-06-05 00:27:31 +080061}
62
63/** 新增种子 */
64export async function addBtTorrent(data: BtTorrent) {
65 return request('/api/system/torrent', {
66 method: 'post',
67 data,
68 });
BirdNETM178aca62025-06-08 14:43:41 +080069}
70
71export async function submitReward(file: File) {
72 const formData = new FormData();
73 formData.append('file', file);
74
75 return request('/api/rward/uploadTorrent', {
76 method: 'POST',
77 data: formData,
78 headers: {
79 'Content-Type': 'multipart/form-data',
80 },
81 });
BirdNETMb0f71532025-05-26 17:37:33 +080082}