565 lines
17 KiB
TypeScript
565 lines
17 KiB
TypeScript
import { v4 as uuidV4 } from 'uuid';
|
|
import OpenIMSDK from '..';
|
|
import {
|
|
AdvancedGetMessageResult,
|
|
BaseResponse,
|
|
CardElem,
|
|
MessageItem,
|
|
} from '@/types/entity';
|
|
import {
|
|
AtMsgParams,
|
|
CustomMsgParams,
|
|
FaceMessageParams,
|
|
FileMsgByPathParams,
|
|
FileMsgByUrlParams,
|
|
FindMessageParams,
|
|
GetAdvancedHistoryMsgParams,
|
|
ImageMsgByUrlParams,
|
|
InsertGroupMsgParams,
|
|
InsertSingleMsgParams,
|
|
LocationMsgParams,
|
|
MergerMsgParams,
|
|
OpreateMessageParams,
|
|
QuoteMsgParams,
|
|
SearchLocalParams,
|
|
SendMsgParams,
|
|
SetMessageLocalExParams,
|
|
SoundMsgByPathParams,
|
|
SoundMsgByUrlParams,
|
|
TypingUpdateParams,
|
|
VideoMsgByPathParams,
|
|
VideoMsgByUrlParams,
|
|
} from '@/types/params';
|
|
|
|
export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|
return {
|
|
createTextMessage: (content: string, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_text_message(opid, content)
|
|
),
|
|
|
|
createTextAtMessage: (params: AtMsgParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_text_at_message(
|
|
opid,
|
|
params.text,
|
|
JSON.stringify(params.atUserIDList),
|
|
JSON.stringify(params.atUsersInfo),
|
|
JSON.stringify(params.message)
|
|
)
|
|
),
|
|
|
|
createLocationMessage: (params: LocationMsgParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_location_message(
|
|
opid,
|
|
params.description,
|
|
params.longitude,
|
|
params.latitude
|
|
)
|
|
),
|
|
|
|
createCustomMessage: (params: CustomMsgParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_custom_message(
|
|
opid,
|
|
params.data,
|
|
params.extension,
|
|
params.description
|
|
)
|
|
),
|
|
|
|
createQuoteMessage: (params: QuoteMsgParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_quote_message(
|
|
opid,
|
|
params.text,
|
|
params.message
|
|
)
|
|
),
|
|
|
|
createCardMessage: (params: CardElem, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_card_message(opid, JSON.stringify(params))
|
|
),
|
|
|
|
createMergerMessage: (params: MergerMsgParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_merger_message(
|
|
opid,
|
|
JSON.stringify(params.messageList),
|
|
params.title,
|
|
JSON.stringify(params.summaryList)
|
|
)
|
|
),
|
|
|
|
createFaceMessage: (params: FaceMessageParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_face_message(
|
|
opid,
|
|
params.index,
|
|
params.data
|
|
)
|
|
),
|
|
|
|
createForwardMessage: (message: MessageItem, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_forward_message(
|
|
opid,
|
|
JSON.stringify(message)
|
|
)
|
|
),
|
|
|
|
createImageMessage: (imagePath: string, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_image_message(opid, imagePath)
|
|
),
|
|
|
|
createImageMessageFromFullPath: (imagePath: string, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_image_message_from_full_path(
|
|
opid,
|
|
imagePath
|
|
)
|
|
),
|
|
|
|
createImageMessageByUrl: (params: ImageMsgByUrlParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_image_message_by_url(
|
|
opid,
|
|
params.sourcePath,
|
|
JSON.stringify(params.sourcePicture),
|
|
JSON.stringify(params.bigPicture),
|
|
JSON.stringify(params.snapshotPicture)
|
|
)
|
|
),
|
|
|
|
createVideoMessage: (params: VideoMsgByPathParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_video_message(
|
|
opid,
|
|
params.videoPath,
|
|
params.videoType,
|
|
params.duration,
|
|
params.snapshotPath
|
|
)
|
|
),
|
|
|
|
createVideoMessageFromFullPath: (
|
|
params: VideoMsgByPathParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_video_message_from_full_path(
|
|
opid,
|
|
params.videoPath,
|
|
params.videoType,
|
|
params.duration,
|
|
params.snapshotPath
|
|
)
|
|
),
|
|
|
|
createVideoMessageByUrl: (params: VideoMsgByUrlParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_video_message_by_url(
|
|
opid,
|
|
JSON.stringify(params)
|
|
)
|
|
),
|
|
|
|
createSoundMessage: (params: SoundMsgByPathParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_sound_message(
|
|
opid,
|
|
params.soundPath,
|
|
params.duration
|
|
)
|
|
),
|
|
|
|
createSoundMessageFromFullPath: (
|
|
params: SoundMsgByPathParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_sound_message_from_full_path(
|
|
opid,
|
|
params.soundPath,
|
|
params.duration
|
|
)
|
|
),
|
|
|
|
createSoundMessageByUrl: (params: SoundMsgByUrlParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_sound_message_by_url(
|
|
opid,
|
|
JSON.stringify(params)
|
|
)
|
|
),
|
|
|
|
createFileMessage: (params: FileMsgByPathParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_file_message(
|
|
opid,
|
|
params.filePath,
|
|
params.fileName
|
|
)
|
|
),
|
|
|
|
createFileMessageFromFullPath: (
|
|
params: FileMsgByPathParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_file_message_from_full_path(
|
|
opid,
|
|
params.filePath,
|
|
params.fileName
|
|
)
|
|
),
|
|
|
|
createFileMessageByUrl: (params: FileMsgByUrlParams, opid = uuidV4()) =>
|
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
|
opid,
|
|
openIMSDK.libOpenIMSDK.create_file_message_by_url(
|
|
opid,
|
|
JSON.stringify(params)
|
|
)
|
|
),
|
|
|
|
sendMessage: (params: SendMsgParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<MessageItem>>((resolve, reject) => {
|
|
const offlinePushInfo = params.offlinePushInfo ?? {
|
|
title: 'You has a new message.',
|
|
desc: 'You has a new message.',
|
|
ex: '',
|
|
iOSPushSound: '+1',
|
|
iOSBadgeCount: true,
|
|
};
|
|
openIMSDK.libOpenIMSDK.send_message(
|
|
openIMSDK.baseCallbackWrap<MessageItem>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params.message),
|
|
params.recvID,
|
|
params.groupID,
|
|
JSON.stringify(offlinePushInfo)
|
|
);
|
|
}),
|
|
|
|
sendMessageNotOss: (params: SendMsgParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<MessageItem>>((resolve, reject) => {
|
|
const offlinePushInfo = params.offlinePushInfo ?? {
|
|
title: 'You has a new message.',
|
|
desc: 'You has a new message.',
|
|
ex: '',
|
|
iOSPushSound: '+1',
|
|
iOSBadgeCount: true,
|
|
};
|
|
openIMSDK.libOpenIMSDK.send_message_not_oss(
|
|
openIMSDK.baseCallbackWrap<MessageItem>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params.message),
|
|
params.recvID,
|
|
params.groupID,
|
|
JSON.stringify(offlinePushInfo)
|
|
);
|
|
}),
|
|
|
|
typingStatusUpdate: (params: TypingUpdateParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.typing_status_update(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
params.recvID,
|
|
params.msgTip
|
|
);
|
|
}),
|
|
|
|
revokeMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.revoke_message(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
params.conversationID,
|
|
params.clientMsgID
|
|
);
|
|
}),
|
|
|
|
deleteMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.delete_message(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
params.conversationID,
|
|
params.clientMsgID
|
|
);
|
|
}),
|
|
|
|
deleteMessageFromLocalStorage: (
|
|
params: OpreateMessageParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.delete_message_from_local_storage(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
params.conversationID,
|
|
params.clientMsgID
|
|
);
|
|
}),
|
|
|
|
deleteAllMsgFromLocal: (opid = uuidV4()) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.delete_all_msg_from_local(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid
|
|
);
|
|
}),
|
|
|
|
deleteAllMsgFromLocalAndSvr: (opid = uuidV4()) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.delete_all_msg_from_local_and_svr(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid
|
|
);
|
|
}),
|
|
|
|
searchLocalMessages: (params: SearchLocalParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<MessageItem[]>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.search_local_messages(
|
|
openIMSDK.baseCallbackWrap<MessageItem[]>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params)
|
|
);
|
|
}),
|
|
|
|
getAdvancedHistoryMessageList: (
|
|
params: GetAdvancedHistoryMsgParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
new Promise<BaseResponse<AdvancedGetMessageResult>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.get_advanced_history_message_list(
|
|
openIMSDK.baseCallbackWrap<AdvancedGetMessageResult>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params)
|
|
);
|
|
}),
|
|
|
|
getAdvancedHistoryMessageListReverse: (
|
|
params: GetAdvancedHistoryMsgParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
new Promise<BaseResponse<AdvancedGetMessageResult>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.get_advanced_history_message_list_reverse(
|
|
openIMSDK.baseCallbackWrap<AdvancedGetMessageResult>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params)
|
|
);
|
|
}),
|
|
findMessageList: (params: FindMessageParams[], opid = uuidV4()) =>
|
|
new Promise<BaseResponse<MessageItem[]>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.find_message_list(
|
|
openIMSDK.baseCallbackWrap<MessageItem[]>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params)
|
|
);
|
|
}),
|
|
insertGroupMessageToLocalStorage: (
|
|
params: InsertGroupMsgParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.insert_group_message_to_local_storage(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params.message),
|
|
params.groupID,
|
|
params.sendID
|
|
);
|
|
}),
|
|
insertSingleMessageToLocalStorage: (
|
|
params: InsertSingleMsgParams,
|
|
opid = uuidV4()
|
|
) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.insert_single_message_to_local_storage(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
JSON.stringify(params.message),
|
|
params.recvID,
|
|
params.sendID
|
|
);
|
|
}),
|
|
setMessageLocalEx: (params: SetMessageLocalExParams, opid = uuidV4()) =>
|
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
|
openIMSDK.libOpenIMSDK.set_message_local_ex(
|
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
|
opid,
|
|
params.conversationID,
|
|
params.clientMsgID,
|
|
params.localEx
|
|
);
|
|
}),
|
|
};
|
|
}
|
|
|
|
export interface MessageModuleApi {
|
|
createTextMessage: (
|
|
content: string,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createTextAtMessage: (
|
|
params: AtMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createLocationMessage: (
|
|
params: LocationMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createCustomMessage: (
|
|
params: CustomMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createQuoteMessage: (
|
|
params: QuoteMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createCardMessage: (
|
|
params: CardElem,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createMergerMessage: (
|
|
params: MergerMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createFaceMessage: (
|
|
params: FaceMessageParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createForwardMessage: (
|
|
message: MessageItem,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createImageMessage: (
|
|
imagePath: string,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createImageMessageFromFullPath: (
|
|
imagePath: string,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createImageMessageByUrl: (
|
|
params: ImageMsgByUrlParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createVideoMessage: (
|
|
params: VideoMsgByPathParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createVideoMessageFromFullPath: (
|
|
params: VideoMsgByPathParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createVideoMessageByUrl: (
|
|
params: VideoMsgByUrlParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createSoundMessage: (
|
|
params: SoundMsgByPathParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createSoundMessageFromFullPath: (
|
|
params: SoundMsgByPathParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createSoundMessageByUrl: (
|
|
params: SoundMsgByUrlParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createFileMessage: (
|
|
params: FileMsgByPathParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createFileMessageFromFullPath: (
|
|
params: FileMsgByPathParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
createFileMessageByUrl: (
|
|
params: FileMsgByUrlParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
sendMessage: (
|
|
params: SendMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
sendMessageNotOss: (
|
|
params: SendMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem>>;
|
|
typingStatusUpdate: (
|
|
params: TypingUpdateParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
revokeMessage: (
|
|
params: OpreateMessageParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
deleteMessage: (
|
|
params: OpreateMessageParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
deleteMessageFromLocalStorage: (
|
|
params: OpreateMessageParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
deleteAllMsgFromLocal: (opid?: string) => Promise<BaseResponse<void>>;
|
|
deleteAllMsgFromLocalAndSvr: (opid?: string) => Promise<BaseResponse<void>>;
|
|
searchLocalMessages: (
|
|
params: SearchLocalParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem[]>>;
|
|
getAdvancedHistoryMessageList: (
|
|
params: GetAdvancedHistoryMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<AdvancedGetMessageResult>>;
|
|
getAdvancedHistoryMessageListReverse: (
|
|
params: GetAdvancedHistoryMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<AdvancedGetMessageResult>>;
|
|
findMessageList: (
|
|
params: FindMessageParams[],
|
|
opid?: string
|
|
) => Promise<BaseResponse<MessageItem[]>>;
|
|
insertGroupMessageToLocalStorage: (
|
|
params: InsertGroupMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
insertSingleMessageToLocalStorage: (
|
|
params: InsertSingleMsgParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
setMessageLocalEx: (
|
|
params: SetMessageLocalExParams,
|
|
opid?: string
|
|
) => Promise<BaseResponse<void>>;
|
|
}
|