admin-vben/apps/web-ele/src/api/im/message/private/index.ts

90 lines
2.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { requestClient } from '#/api/request';
export namespace ImPrivateMessageApi {
/** 私聊消息 Response VO */
export interface PrivateMessageRespVO {
id: number; // 消息编号
clientMessageId: string; // 客户端消息编号
senderId: number; // 发送人编号
receiverId: number; // 接收人编号
type: number; // 内容类型
content: string; // 消息内容JSON 格式)
status: number; // 消息状态(正常 / 已撤回)
receiptStatus?: number; // 回执状态(不需要 / 待完成 / 已完成),对齐 ImMessageReceiptStatus
sendTime: string; // 发送时间
}
/** 私聊消息发送 Request VO */
export interface PrivateMessageSendReqVO {
clientMessageId: string; // 客户端消息编号
receiverId: number; // 接收人编号
type: number; // 内容类型
content: string; // 消息内容JSON 格式)
receipt?: boolean; // 是否需要回执;不传后端默认 true普通私聊用户消息
}
/** 私聊历史消息列表 Request VO */
export interface PrivateMessageListReqVO {
receiverId: number | string; // 接收人编号(对方)
maxId?: number | string; // 起始消息编号(不含),为空则从最新消息开始
limit: number; // 拉取数量1 ~ 200
}
}
/** 发送私聊消息 */
export function sendPrivateMessage(data: ImPrivateMessageApi.PrivateMessageSendReqVO) {
return requestClient.post<ImPrivateMessageApi.PrivateMessageRespVO>(
'/im/message/private/send',
data,
);
}
/** 拉取私聊消息(增量) */
export function pullPrivateMessages(
params: { minId: number | string; size: number },
signal?: AbortSignal,
) {
return requestClient.get<ImPrivateMessageApi.PrivateMessageRespVO[]>(
'/im/message/private/pull',
{ params, signal },
);
}
/** 查询私聊历史消息 */
export function getPrivateMessageList(params: ImPrivateMessageApi.PrivateMessageListReqVO) {
return requestClient.get<ImPrivateMessageApi.PrivateMessageRespVO[]>(
'/im/message/private/list',
{ params },
);
}
/** 标记私聊消息已读 */
export function readPrivateMessages(
receiverId: number | string,
messageId: number | string,
) {
return requestClient.put<boolean>('/im/message/private/read', undefined, {
params: { receiverId, messageId },
});
}
/** 查询对方已读到我发的最大消息 id多端 / 离线后用于补齐已读状态) */
export function getPrivateMaxReadMessageId(
peerId: number | string,
signal?: AbortSignal,
) {
return requestClient.get<null | number>(
'/im/message/private/max-read-message-id',
{ params: { peerId }, signal },
);
}
/** 撤回私聊消息 */
export function recallPrivateMessage(id: number | string) {
return requestClient.delete<ImPrivateMessageApi.PrivateMessageRespVO>(
'/im/message/private/recall',
{ params: { id } },
);
}