blob: 32073b1d816aeb0b5f50da1fbb781719dfec8c1f [file] [log] [blame]
Xing Jinwenff16b1e2025-06-05 00:29:26 +08001import request from './request'
2
3export const userApi = {
4 /**
5 * 获取当前用户信息
6 * @returns {Promise<Object>} 用户信息
7 */
8 getCurrentUser() {
9 return request({
208159515458d95702025-06-09 14:46:58 +080010 url: '/auth/status',
11 method: 'get'
12 })
13 },
14
15 /**
16 * 获取用户分享率和统计信息
17 * @returns {Promise<Object>} 分享率统计信息
18 */
19 getUserRatioInfo() {
20 return request({
21 url: '/torrent/ratio/info',
Xing Jinwenff16b1e2025-06-05 00:29:26 +080022 method: 'get'
23 })
24 },
25
26 /**
27 * 更新用户资料
28 * @param {Object} profileData - 用户资料数据
29 * @returns {Promise<Object>} 更新响应
30 */
31 updateProfile(profileData) {
32 return request({
33 url: '/user/profile',
34 method: 'put',
35 data: profileData
36 })
37 },
38
39 /**
40 * 修改密码
41 * @param {Object} passwordData - 密码数据
42 * @param {string} passwordData.currentPassword - 当前密码
43 * @param {string} passwordData.newPassword - 新密码
44 * @returns {Promise<Object>} 修改响应
45 */
46 changePassword(passwordData) {
47 return request({
48 url: '/user/password',
49 method: 'put',
50 data: passwordData
51 })
52 },
53
54 /**
55 * 上传头像
56 * @param {FormData} formData - 包含头像文件的FormData
57 * @returns {Promise<Object>} 上传响应
58 */
59 uploadAvatar(formData) {
60 return request({
61 url: '/user/avatar',
62 method: 'post',
63 data: formData,
64 headers: {
65 'Content-Type': 'multipart/form-data'
66 }
67 })
68 },
69
70 /**
71 * 获取用户统计信息
72 * @returns {Promise<Object>} 统计信息
73 */
74 getUserStats() {
75 return request({
76 url: '/user/stats',
77 method: 'get'
78 })
79 },
80
81 /**
82 * 获取用户活动记录
83 * @param {Object} params - 查询参数
84 * @param {string} params.type - 活动类型
85 * @param {number} params.page - 页码
86 * @param {number} params.size - 每页大小
87 * @returns {Promise<Object>} 活动记录
88 */
89 getUserActivities(params = {}) {
90 return request({
91 url: '/user/activities',
92 method: 'get',
93 params
94 })
95 },
96
97 /**
98 * 获取用户上传的种子
99 * @param {Object} params - 查询参数
100 * @param {number} params.page - 页码
101 * @param {number} params.size - 每页大小
102 * @returns {Promise<Object>} 种子列表
103 */
104 getUserTorrents(params = {}) {
105 return request({
106 url: '/user/torrents',
107 method: 'get',
108 params
109 })
110 },
111
112 /**
113 * 获取登录历史
114 * @param {Object} params - 查询参数
115 * @param {number} params.page - 页码
116 * @param {number} params.size - 每页大小
117 * @returns {Promise<Object>} 登录历史
118 */
119 getLoginHistory(params = {}) {
120 return request({
121 url: '/user/login-history',
122 method: 'get',
123 params
124 })
125 }
126}