@hongtangyun/rooms-sdk
Version:
JavaScript SDK Client for hongtangyun rooms-sdk.
193 lines (192 loc) • 3.96 kB
TypeScript
import { EquipmentInfo } from '../types';
import { RoomEvents } from '../socket/types';
import { UserRole, UserSubRole } from './Enums';
export interface TokenInfo {
userInfo: {
role: number;
id: number;
roomid: string;
creatorId: string;
};
iat: Date | number;
exp: Date | number;
}
export interface UserRoleInfo {
role: number;
mainRole: UserRole;
subRole: UserSubRole;
isSubRole: boolean;
isMainRole: boolean;
}
export interface Config {
/**
* 房间token
*/
token: string;
/**
* 调试模式
*/
debug?: boolean;
/**
* 接口域名
*/
host?: string;
/**
* 设备信息
*/
equipment?: EquipmentInfo;
}
export interface MicroTempInfo {
/**
* 代码环境
*/
codeType: 'dev' | 'master' | 'qa';
_id: string;
url: string;
icon: string;
name: string;
}
export interface RoomUserType {
id: number;
/**
* uid 用户 role + id 拼接
* webrtc 使用此id
*/
uid?: number;
name: string;
avatar: string;
role: UserRole;
roomId?: string;
}
export interface RoomTempType {
status: boolean;
_id: string;
name: string;
url: string;
config: string;
created: Date;
updated: Date;
icon: string;
path: string;
rtcNumber: number;
platform: {
web: boolean;
mobile: boolean;
};
}
export interface RtcInfoType {
type: 'agoral' | 'tencent';
uid: number;
channel: string;
appid: string;
token: string;
}
export interface SocketInfoType {
url: string;
}
export interface RoomInfoType {
roomInfo: {
_id: string;
name: string;
created: Date;
updated: Date;
roomTempConfig: string;
roomTempId: string;
users: Array<RoomUserType>;
};
roomTemp: RoomTempType;
socketInfo: SocketInfoType;
userInfo: RoomUserType;
/**
* 服务器时间
*/
onlineTime: number;
}
export interface SDKRoomInfoType extends RoomInfoType {
_id?: string;
/**
* 各用户权限列表
*/
users: {
[key in UserRole]: RoomUserType[];
} | object;
/**
* 房间开始时间
*/
startTime: number;
/**
* 房间结束时间
*/
endTime: number;
}
export interface RoomActionsItem extends RoomEvents {
uuid: string;
time: Date | number;
created?: Date | string;
}
export interface RoomInitActionsItem extends RoomActionsItem {
/**
* 动作总次数
*/
__COUNT__?: number;
}
export type StorageType = 'COS' | 'OSS';
export type COS_INFO = {
expiredTime: number;
expiration: string;
credentials: {
sessionToken: string;
tmpSecretId: string;
tmpSecretKey: string;
};
requestId: string;
startTime: number;
bucket: string;
region: string;
};
export type OSS_INFO = {
accessKeyId: string;
accessKeySecret: string;
bucket: string;
region: string;
stsToken: string;
cname: boolean;
endpoint: string;
};
export type PaperItem = {
created: string;
id: string;
name: string;
/**
* 选项乱序
* [1] 未乱
* [2] 乱
*/
optionOrder: 1 | 2;
questionNumber: number;
/**
* 试题乱序
* [1] 未乱
* [2] 未乱
*/
questionOrder: 1 | 2;
score: number;
/**
* 发布状态
* [1] 发
* [2] 未发
*/
status: 1 | 2;
tags: string | [];
/**
* 状态
* [1] 文档型试卷
* [2] 在线型试卷
* [3] url型试卷
* [4] wps型试卷
*/
type: 1 | 2 | 3 | 4;
updated: string;
sourceObj?: any;
sourceUrl?: any;
};