import { requestClient } from '#/api/request';
|
|
export namespace ImFriendRequestApi {
|
/** IM 好友申请 Response VO */
|
export interface FriendRequestRespVO {
|
id: number; // 申请编号
|
fromUserId: number; // 发起方用户编号
|
toUserId: number; // 接收方用户编号
|
handleResult: number; // 处理结果;0=未处理;1=同意;2=拒绝
|
applyContent?: string; // 申请理由
|
handleContent?: string; // 处理理由(接收方拒绝时可选填)
|
addSource?: number; // 添加来源;参见 ImFriendAddSourceEnum
|
handleTime?: string; // 处理时间
|
createTime: string; // 申请创建时间
|
updateTime?: number; // 最近更新时间(毫秒时间戳,增量拉取游标用)
|
fromNickname?: string; // 发起方昵称
|
fromAvatar?: string; // 发起方头像
|
toNickname?: string; // 接收方昵称
|
toAvatar?: string; // 接收方头像
|
}
|
|
/** IM 好友申请发起 Request VO */
|
export interface FriendRequestApplyReqVO {
|
toUserId: number; // 接收方用户编号
|
applyContent?: string; // 申请理由
|
displayName?: string; // 对接收方的备注(仅自己可见)
|
addSource?: number; // 添加来源
|
}
|
}
|
|
|
/** 发起好友申请 */
|
export function applyFriendRequest(data: ImFriendRequestApi.FriendRequestApplyReqVO) {
|
return requestClient.post<null | number>('/im/friend-request/apply', data);
|
}
|
|
/** 同意好友申请 */
|
export function agreeFriendRequest(id: number | string) {
|
return requestClient.put<boolean>('/im/friend-request/agree', undefined, {
|
params: { id },
|
});
|
}
|
|
/** 拒绝好友申请 */
|
export function refuseFriendRequest(
|
id: number | string,
|
handleContent?: string,
|
) {
|
return requestClient.put<boolean>('/im/friend-request/refuse', undefined, {
|
params: { id, handleContent },
|
});
|
}
|
|
/** 查询「我相关」的好友申请列表(游标分页:传 maxId 加载更多) */
|
export function getMyFriendRequestList(limit: number, maxId?: number) {
|
const params: Record<string, number> = { limit };
|
if (maxId != null) {
|
params.maxId = maxId;
|
}
|
return requestClient.get<ImFriendRequestApi.FriendRequestRespVO[]>(
|
'/im/friend-request/list',
|
{ params },
|
);
|
}
|
|
/** 增量拉取「我相关」的好友申请变更(重连 / 离线补偿) */
|
export function pullMyFriendRequestList(params: {
|
lastId?: number;
|
lastUpdateTime?: number;
|
limit: number;
|
}) {
|
return requestClient.get<ImFriendRequestApi.FriendRequestRespVO[]>(
|
'/im/friend-request/pull',
|
{ params },
|
);
|
}
|
|
/** 按 id 单查「我相关」的申请记录(带越权过滤;WebSocket 通知到达后用) */
|
export function getMyFriendRequest(id: number) {
|
return requestClient.get<ImFriendRequestApi.FriendRequestRespVO | null>(
|
'/im/friend-request/get',
|
{ params: { id } },
|
);
|
}
|