Files
knowai/api/modules/user.ts
tobegold574 a0c907beed feat(api): 添加热门卡片与榜单接口及实现
- 新增热门帖子、热门作者、榜单接口及实现
- 新增api-documentation,更好的ai协作
- 修复types没有导出的问题

BREAKING CHANGES: 1.0.0->1.1.0(latest)
2025-11-18 22:29:40 +08:00

66 lines
1.8 KiB
TypeScript

import type { ApiClient } from '../types';
import type {
LoginRequest,
LoginResponse,
RegisterRequest,
RegisterResponse,
RefreshTokenRequest,
RefreshTokenResponse,
UserProfileUpdateRequest,
UserProfileUpdateResponse,
UserFollowRequest,
UserFollowResponse,
GetHotAuthorsRequest,
GetHotAuthorsResponse,
GetAuthorRankingRequest,
GetAuthorRankingResponse
} from '@/types/user';
// 用户API服务工厂函数
export const userApi = (client: ApiClient) => ({
// 用户登录
login: (data: LoginRequest): Promise<LoginResponse> => {
return client.post('/auth/login', data);
},
// 用户注册
register: (data: RegisterRequest): Promise<RegisterResponse> => {
return client.post('/auth/register', data);
},
// 刷新令牌
refreshToken: (data: RefreshTokenRequest): Promise<RefreshTokenResponse> => {
return client.post('/auth/refresh', data);
},
// 获取用户档案
getProfile: (): Promise<UserProfileUpdateResponse> => {
return client.get('/user/profile');
},
// 更新用户档案
updateProfile: (data: UserProfileUpdateRequest): Promise<UserProfileUpdateResponse> => {
return client.put('/user/profile', data);
},
// 关注用户
followUser: ({ userId }: UserFollowRequest): Promise<UserFollowResponse> => {
return client.put(`/user/follow/${userId}`);
},
// 取消关注用户
unfollowUser: ({ userId }: UserFollowRequest): Promise<UserFollowResponse> => {
return client.delete(`/user/follow/${userId}`);
},
// 获取热门作者
getHotAuthors: (params: GetHotAuthorsRequest = {}): Promise<GetHotAuthorsResponse> => {
return client.get('/user/hot', { params });
},
// 获取作者榜单
getAuthorRanking: (params: GetAuthorRankingRequest = {}): Promise<GetAuthorRankingResponse> => {
return client.get('/user/ranking', { params });
}
});