blob: 2cfb40ce4bf4787ac3dd3d8e841dfd8ea70ee9d6 [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({
10 url: '/user/profile',
11 method: 'get'
12 })
13 },
14
15 /**
16 * 更新用户资料
17 * @param {Object} profileData - 用户资料数据
18 * @returns {Promise<Object>} 更新响应
19 */
20 updateProfile(profileData) {
21 return request({
22 url: '/user/profile',
23 method: 'put',
24 data: profileData
25 })
26 },
27
28 /**
29 * 修改密码
30 * @param {Object} passwordData - 密码数据
31 * @param {string} passwordData.currentPassword - 当前密码
32 * @param {string} passwordData.newPassword - 新密码
33 * @returns {Promise<Object>} 修改响应
34 */
35 changePassword(passwordData) {
36 return request({
37 url: '/user/password',
38 method: 'put',
39 data: passwordData
40 })
41 },
42
43 /**
44 * 上传头像
45 * @param {FormData} formData - 包含头像文件的FormData
46 * @returns {Promise<Object>} 上传响应
47 */
48 uploadAvatar(formData) {
49 return request({
50 url: '/user/avatar',
51 method: 'post',
52 data: formData,
53 headers: {
54 'Content-Type': 'multipart/form-data'
55 }
56 })
57 },
58
59 /**
60 * 获取用户统计信息
61 * @returns {Promise<Object>} 统计信息
62 */
63 getUserStats() {
64 return request({
65 url: '/user/stats',
66 method: 'get'
67 })
68 },
69
70 /**
71 * 获取用户活动记录
72 * @param {Object} params - 查询参数
73 * @param {string} params.type - 活动类型
74 * @param {number} params.page - 页码
75 * @param {number} params.size - 每页大小
76 * @returns {Promise<Object>} 活动记录
77 */
78 getUserActivities(params = {}) {
79 return request({
80 url: '/user/activities',
81 method: 'get',
82 params
83 })
84 },
85
86 /**
87 * 获取用户上传的种子
88 * @param {Object} params - 查询参数
89 * @param {number} params.page - 页码
90 * @param {number} params.size - 每页大小
91 * @returns {Promise<Object>} 种子列表
92 */
93 getUserTorrents(params = {}) {
94 return request({
95 url: '/user/torrents',
96 method: 'get',
97 params
98 })
99 },
100
101 /**
102 * 获取登录历史
103 * @param {Object} params - 查询参数
104 * @param {number} params.page - 页码
105 * @param {number} params.size - 每页大小
106 * @returns {Promise<Object>} 登录历史
107 */
108 getLoginHistory(params = {}) {
109 return request({
110 url: '/user/login-history',
111 method: 'get',
112 params
113 })
114 }
115}