thunbu-im-sdk
Version:
thunbu IM JSSDK
626 lines (625 loc) • 22.4 kB
TypeScript
import { SIMTypes } from "./index.i";
import { IMReceiveTypes } from "./IM.i";
export declare namespace GroupTypes {
enum GroupUserRoleEnum {
GroupOwner = 0,
GroupAdmin = 1,
GroupUser = 2
}
interface GetAllUserGroupResItem {
/** 群组Id */
"id": string;
/** 群组名称 */
"name": string;
/** 群组头像 */
"avatar": string;
/** 群主ID */
"ownerId": string;
/** 人数上限 */
"maxCount": number;
/** 用户状态: 1需要审核,0不需要审核 */
"isReview": 0 | 1;
/** 群组类型 1内部群,3事件群,4外部群 */
"groupType": GroupTypeEnum;
/** 应用ID */
"appId": string;
/** 建群时间 */
"createTime": number;
/** 群组的默认类型:0名字头像都是自定义, 1名字默认头像自定义, 2名字是自定义头像是默认, 3都是默认 */
"defaultType": 0 | 1 | 2 | 3;
/** 组成默认信息的人员id */
"defaultAccounts": string;
/** 群人数 */
"num": number;
/** 邀请开关 */
"invitedToggle": 0 | 1;
/** @all开关 */
"atallToggle": 0 | 1;
}
interface GroupMemberItemType {
/** 租户ID */
"appId": string;
/** 群ID */
"groupId": string;
/** 用户ID */
"userId": string;
/** 用户角色(0群主,1管理员,2普通用户) */
"role": GroupUserRoleEnum;
/** 群成员昵称 */
"nickname": string;
/** 用户昵称 */
"petName": string;
/** 用户昵称拼音 */
"nicknamePy": string;
/** 免打扰(1表示消息免打扰) */
"disturb": 0 | 1;
/** 删除标识,0代表为删除,1代表已删除 */
"delFlag": 0 | 1;
/** 创建时间(加入时间) */
"createTime": number;
/** 修改时间 */
"updateTime": number;
/** 本人被谁邀请进群的(非邀请的情况,本字段则可为空) */
"beInviteId"?: string;
/** 如是群的被转让人,本字段填的就是最近一次被转让时的时间 */
beOwnerTime?: string;
}
interface GroupEventExplainType {
/** 建群人-account */
"createBy": string;
/** 建群人-name */
"createName": string;
/** 建群时间 */
"createTime": number;
/** 是否解散:0正常,1解散 */
"delFlag": boolean;
/** 附件地址JSON数组格式 */
"fileInfo": string;
/** 群组ID */
"groupId": string;
/** 事件ID */
"id": string;
/** 图片地址JSON数组格式 */
"imageInfo": string;
/** 文字内容 */
"text": string;
}
interface GetGroupDetailRes extends GetAllUserGroupResItem {
/** 群成员信息 */
groupMembers: GroupMemberItemType[];
/** 群公告信息 */
groupEventExplain?: GroupEventExplainType;
}
interface GroupInterfaceType extends DefaultApiTypes.DefaultApiClass {
/** 群组查询-查询用户的所有群 */
getAllUserGroup(params: GetAllUserGroupParams): Promise<DefaultApiTypes.DefaultResponse<GetAllUserGroupResItem[]>>;
/** 修改群 */
modifyGroup(params: ModifyGroupParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 切换@All的设置 */
setGroupAtAllToggle(p: SetGroupAtAllToggleParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 更改邀请群成员的设置 */
setGroupInvitedToggle(p: SetGroupInvitedToggleParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 获取群的简要信息 */
getGroupIntro(p: GetGroupIntroParams): Promise<DefaultApiTypes.DefaultResponse<GetAllUserGroupResItem>>;
/** 获取群组的详细信息 */
getGroupDetail(p: GetGroupDetailParams): Promise<DefaultApiTypes.DefaultResponse<GetGroupDetailRes>>;
/** 获取群组的详细信息 - 列表获取 */
getGroupDetailList(p: GetGroupListDetailParams): Promise<DefaultApiTypes.DefaultResponse<GetGroupDetailRes[]>>;
/** 通过群组名称和群组类型来搜索当前用户拥有的群组 */
searchGroups(p: SearchGroupsParams): Promise<DefaultApiTypes.DefaultResponse<GetAllUserGroupResItem[]>>;
/** 邀请加入群聊 */
inviteJoinGroup(p: InviteGroupParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 转让群主 */
changeGroupOwner(p: ChangeOwnerParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 获取群组管理员 */
getGroupManagers(p: GetGroupManagerParams): Promise<DefaultApiTypes.DefaultResponse<GroupMemberItemType[]>>;
/** getGroupMemberIds */
getGroupMemberIds(p: GetGroupMemberIdsParams): Promise<DefaultApiTypes.DefaultResponse<string[]>>;
/** 获取群组成员集合 */
getGroupMemberList(p: GetGroupMemberListParams): Promise<DefaultApiTypes.DefaultResponse<GroupMemberItemType[]>>;
/** 将人员移出群聊 */
deleteGroupMember(p: DeleteGroupMemberParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 退出群组 */
quitGroup(p: QuitGroupParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 修改群成员角色 */
setGroupMemberRole(p: SetGroupMemberRoleParams): Promise<DefaultApiTypes.DefaultResponse>;
}
interface ConstructorParams {
baseUrl: string;
}
enum GroupTypeEnum {
/** 内部群 */
InnerGroup = 1,
/** 事件群 */
EventGroup = 3,
/** 外部群 */
OuterGroup = 4,
/** 组织群 */
OrgGroup = 5,
/** 会议群聊 */
MeetingGroup = 6
}
interface CreateGroupParams {
/** 群组类型,0-群组,1-讨论组 */
groupType: 0 | 1;
/** 群组名称 */
groupName: string;
/** 人员列表 */
userIds: string[];
}
/** 获取群成员参数 */
interface GetAllUserGroupParams {
typeArr?: (1 | 3 | 4)[];
}
/** 修改群组 */
interface ModifyGroupParams {
groupType: GroupTypeEnum;
groupId: string;
groupName?: string;
avatar?: string;
/** 是否需要审批 1需要审核,0不需要审核 */
isReview?: 0 | 1;
notice?: string;
}
interface SetGroupAtAllToggleParams {
groupType: GroupTypeEnum;
groupId: string;
/** @All的设置 是否开启@All */
toggle: 0 | 1;
}
interface SetGroupInvitedToggleParams {
groupType: GroupTypeEnum;
groupId: string;
/** 是否允许邀请 */
toggle: 0 | 1;
}
interface GetGroupIntroParams {
groupType: GroupTypeEnum;
groupId: string;
}
interface GetGroupDetailParams {
groupType: GroupTypeEnum;
groupId: string;
}
interface GetGroupListDetailParams {
groupType: GroupTypeEnum;
groupIds: string[];
}
interface SearchGroupsParams {
groupName: string;
/** 0私密群,1公开群,2讨论组,3事件群(默认查询所有 */
typeJsonArray?: (0 | 1 | 2 | 3)[];
}
interface JoinGroupParams {
groupId: string;
reason?: string;
}
interface InviteGroupParams {
groupType: GroupTypeEnum;
groupId: string;
userIds: string[];
}
interface ConfirmInviteJoinGroup {
invitedId: string;
agree: boolean;
}
interface GroupMemberInterfaceType {
}
interface ConstructorParams {
baseUrl: string;
loginMessage?: {
userSig: string;
terminal: string;
appId: string;
appversion: string;
account: string;
};
}
/** 转让群组参数 */
interface ChangeOwnerParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
newOwnerId: string;
}
/** 获取群组管理员参数 */
interface GetGroupManagerParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
}
/** 获取群组成员Id集合参数 */
interface GetGroupMemberIdsParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
}
/** 获取群组成员集合参数 */
interface GetGroupMemberListParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
}
/** 踢人参数 */
interface DeleteGroupMemberParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
userIds: string[];
}
/** 退出群组 */
interface QuitGroupParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
}
/** 设置群成员角色 */
interface SetGroupMemberRoleParams {
groupType: GroupTypes.GroupTypeEnum;
groupId: string;
managerIds: string[];
/** 1设置管理员,2取消管理员 */
type: 1 | 2;
}
/** ES 搜索群 */
interface SearchEsGroupByNameParams {
text: string;
/** 页码 */
index: number;
/** 当前页有多少数据 */
rows: number;
}
/** 通过手机号搜索群聊 */
interface SearchGroupByMobileParams {
mobile: string;
/** 页码 */
page: number;
/** 当前页有多少数据 */
rows: number;
}
}
/** 人员相关信息接口类型 */
export declare namespace UserTypes {
interface FetchMultiPersonalDataResItem {
/** 账号 */
account: string;
/** 用户头像url地址 */
avatar: string;
/** 账号创建时间 */
createTime: string;
/** 自定义字段内容 */
definition: string;
/** 0正常,1禁用手机离线推送 */
disablePush: number;
/** 用户昵称拼音 */
nicknamePy: string;
/** 用户昵称 */
petName: string;
/** 用户姓名 */
userNickname: string;
/** 用户状态0正常,1禁用 */
userStatus: number;
/** 用户id */
userId: number;
}
interface UserInterfaceType extends DefaultApiTypes.DefaultApiClass {
fetchMultiPersonalData: (params: UserTypes.FetchMultiPersonalDataParams) => Promise<DefaultApiTypes.DefaultResponse<FetchMultiPersonalDataResItem>>;
}
interface ConstructorParams {
baseUrl: string;
loginMessage?: {
userSig: string;
terminal: string;
appId: string;
appversion: string;
account: string;
};
}
interface FetchMultiPersonalDataParams {
accounts: string[];
}
}
/** 会话相关接口类型 */
export declare namespace ChatTypes {
interface GetChatInfoTypes {
/** id */
"id": string;
/** 应用id */
"appId": string;
/** 账号 */
"account": string;
/** 聊天会话id(单聊为聊天对象用户id,群聊为群组id) */
"sessionId": string;
/** 聊天会话名称 */
"sessionName": string;
/** 聊天会话头像路径 */
"avatar": string;
/** 会话类型,0单聊,1群聊,2订阅号,10订阅号盒子 */
"sessionType": SIMTypes.ChatTypeEnum;
/** 群组类型 0私密群,1公开群,2讨论组,3事件群 */
"groupType": GroupTypes.GroupTypeEnum;
/** 置顶时间 */
"toppingTime": string;
/** 置顶时间Long型 */
"toppingTimeLong": string;
/** 是否置顶 */
"isTop": 0 | 1;
/** 安全类型0普通,1私聊 */
"securityType": 0 | 1;
/** 是否免打扰:0否,1是 */
"notDisturb": 0 | 1;
/** 是否显示:0否,1是 */
"isShow": 0 | 1;
/** 创建时间 */
"createTime": string;
/** 修改时间 */
"updateTime": string;
/** 最后消息包 */
"lastMsg": IMReceiveTypes.DefaultMsg;
/** 是否@标记:0否,1是 */
"isAt": 0 | 1;
/** 会话状态: 0正常,1解散群,2被踢出群,3单聊对方账号禁用, 10彻底删除,不可恢复 */
"invalid": 0 | 1 | 2 | 3 | 10;
/** 域状态 0内域,1外域 */
"cross": 0 | 1;
/** 会话级别:0外层,1内层 */
"sessionLevel": 0 | 1;
}
interface ChatInterfaceType extends DefaultApiTypes.DefaultApiClass {
/** 设置会话 */
setChatSession(p: SetChatSessionParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 获取会话详情信息 */
getChatInfo(p: GetChatInfoParams): Promise<DefaultApiTypes.DefaultResponse<GetChatInfoTypes>>;
/** 获取所有会话 - 有增量选项 */
getAllChat(p: GetAllChatParams): Promise<DefaultApiTypes.DefaultResponse<GetChatInfoTypes[]>>;
/** 删除会话(设置为不可见) */
deleteChat(p: DeleteChatParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 删除会话(彻底删除) */
destroyChat(p: DeleteChatParams): Promise<DefaultApiTypes.DefaultResponse>;
}
interface ConstructorParams {
baseUrl: string;
loginMessage?: {
userSig: string;
terminal: string;
appId: string;
appversion: string;
account: string;
};
}
interface SetChatSessionParams {
sessionId: string;
securityType: 0 | 1;
sessionType: SIMTypes.ChatTypeEnum;
/** 是否置顶 0否,1是 */
isTop?: 0 | 1;
/** 是否免打扰 0否,1是 */
notDisturb?: 0 | 1;
}
interface GetChatInfoParams {
sessionId: string;
securityType: 0 | 1;
sessionType: SIMTypes.ChatTypeEnum;
}
interface GetAllChatParams {
sessionLevel?: 0 | 1;
lastPullTime?: number;
}
interface DeleteChatParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
}
type SetChatSessionLaterDealParams = {
sessionId: string;
securityType: 0 | 1;
sessionType: SIMTypes.ChatTypeEnum;
isLaterDeal: 0 | 1;
};
}
/** 消息相关接口类型 */
export declare namespace MessageTypes {
interface GetMsgListAndCdMsgRes {
msg: IMReceiveTypes.DefaultMsg[];
cdMsg: IMReceiveTypes.CdMsgBody[];
}
interface GetMsgReadDataRes {
"appId": number;
"avatar": string;
"createBy": string;
"createDate": string;
"delFlag": 0 | 1;
"groupId": string;
"id": string;
"isRead": 0 | 1;
"msgId": string;
"owner": string;
"petName": string;
"readDate": string;
"remarks": string;
"securityType": 0 | 1;
"tId": string;
"updateBy": string;
"updateDate": string;
"userName": string;
}
interface GetMsgStatusItemType {
/** 是否标记 */
"sign": boolean;
/** 是否删除 */
"delFlag": boolean;
/** 删除标记 */
"priDelFlag": boolean;
/** 回复数量 */
"replyCount": number;
/** 是否有小红点? */
"redDarkenFlag": boolean;
/** 排序ID */
"serialId": string;
}
interface MessageInterfaceType extends DefaultApiTypes.DefaultApiClass {
/** 获取指定区间内消息和被指令修改的消息 */
getMsgListAndCdMsgById(p: GetMsgListAndCdMsgByIdParams): Promise<DefaultApiTypes.DefaultResponse<GetMsgListAndCdMsgRes>>;
/** 历史记录搜索 */
searchMsg(p: SearchMsgParams): Promise<DefaultApiTypes.DefaultResponse<IMReceiveTypes.DefaultMsg[]>>;
/** 获取已读状态 */
getMsgReadData(p: GetMsgReadDataParams): Promise<DefaultApiTypes.DefaultResponse<GetMsgReadDataRes[]>>;
/** 查询回复消息列表 */
getReplyList(p: GetReplyListParams): Promise<DefaultApiTypes.DefaultResponse<IMReceiveTypes.DefaultMsg[]>>;
/** 根据消息Id列表查询消息列表 */
getMessageDetails(p: GetMessageDetailsParams): Promise<DefaultApiTypes.DefaultResponse<IMReceiveTypes.DefaultMsg[]>>;
/** 标记消息 */
signMessage(p: SignMessageParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 取消标记消息 */
unSignMessage(p: SignMessageParams): Promise<DefaultApiTypes.DefaultResponse>;
/** 获取标记列表 */
getSignList(p: GetSignListParams): Promise<DefaultApiTypes.DefaultResponse<IMReceiveTypes.DefaultMsg[]>>;
/** 查询用户敏感消息(查询指令) */
getCdMsgList(p: GetCdMsgListParams): Promise<DefaultApiTypes.DefaultResponse<IMReceiveTypes.CdMsgBody[]>>;
/** 根据会话消息序号查询消息列表 */
getMsgList(p: GetMsgListParams): Promise<DefaultApiTypes.DefaultResponse<IMReceiveTypes.DefaultMsg[]>>;
/** 根据会话消息序号区间查询消息状态列表 */
getMsgStatusList(p: GetMsgStatusListParams): Promise<DefaultApiTypes.DefaultResponse<GetMsgStatusItemType[]>>;
}
interface ConstructorParams {
baseUrl: string;
loginMessage?: {
userSig: string;
terminal: string;
appId: string;
appversion: string;
account: string;
};
}
/** 获取指定区间内消息和被指令修改的消息参数 */
interface GetMsgListAndCdMsgByIdParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
/** 消息id */
msgId?: string;
/** 获取数量 */
rows?: number;
/** 0向下拉,1向上拉,2定位前后 */
type?: 0 | 1 | 2;
}
interface SearchMsgParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
/** 消息id */
msgId?: string;
/** 搜索文字 */
searchName?: string;
/** 获取数量 */
rows?: number;
/** 搜索类型 0全部,1文件,2图片及视频 */
type: 0 | 1 | 2;
}
interface GetMsgReadDataParams {
msgId: string;
}
interface GetReplyListParams {
msgId: string;
sessionType: SIMTypes.ChatTypeEnum;
}
interface GetMessageDetailsParams {
msgIds: string[];
sessionType: SIMTypes.ChatTypeEnum;
}
interface SignMessageParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
msgId: string;
cross: 0 | 1;
}
interface GetSignListParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
signDate?: number;
rows?: number;
}
interface GetCdMsgListParams {
time: string;
}
interface GetMsgListParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
serialId?: number;
msgId?: string;
rows: number;
type: 0 | 1 | 2;
}
interface GetMsgStatusListParams {
sessionId: string;
sessionType: SIMTypes.ChatTypeEnum;
securityType: 0 | 1;
startSerialId: number;
endSerialId: number;
}
}
export declare namespace DefaultApiTypes {
interface TbRequestConfig {
url?: string;
baseURL?: string;
method: 'get' | 'post';
headers?: any;
params?: any;
paramsSerializer?: (params: any) => string;
data?: any;
timeout?: number;
timeoutErrorMessage?: string;
withCredentials?: boolean;
responseType?: ResponseType;
xsrfCookieName?: string;
xsrfHeaderName?: string;
onUploadProgress?: (progressEvent: any) => void;
onDownloadProgress?: (progressEvent: any) => void;
maxContentLength?: number;
validateStatus?: ((status: number) => boolean) | null;
maxBodyLength?: number;
maxRedirects?: number;
socketPath?: string | null;
httpAgent?: any;
httpsAgent?: any;
decompress?: boolean;
}
interface TbResponse {
[key: string]: any;
}
type HttpClient = {
get: <T = any>(...params: any[]) => Promise<T>;
post: <T = any>(...params: any[]) => Promise<T>;
interceptors: {
request: {
use: (config: (config: DefaultApiTypes.TbRequestConfig) => DefaultApiTypes.TbRequestConfig) => DefaultApiTypes.TbRequestConfig;
};
response: {
use: (p: (response: DefaultApiTypes.TbResponse) => DefaultApiTypes.TbResponse, p1: (err: any) => void) => DefaultApiTypes.TbResponse;
};
};
setDefaultConfig: (params: any) => void;
};
interface DefaultApiClass {
readonly Http: HttpClient;
headers: DefaultApiConstructorProps['headers'];
setDefaultHeaders: (headers: DefaultApiConstructorProps['headers']) => void;
setLoginHeader: (headers: AppLoginHeader) => void;
}
interface DefaultApiConstructorProps {
baseUrl: string;
headers?: {
[key: string]: string;
};
}
interface AppLoginHeader {
userSig: string;
terminal: string;
appId: string;
appversion: string;
account: string;
}
interface DefaultResponse<T = {}> {
code: number;
message: string;
success: boolean;
data: T;
}
}