55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import {
|
|
ProtocolRequest,
|
|
ProtocolResponse,
|
|
ProtocolEncoder,
|
|
PacketBody,
|
|
PacketBodyValue,
|
|
ProtocolDecoder,
|
|
ProtocolMessage
|
|
} from '@ucap-webmessenger/protocol';
|
|
|
|
export interface RoomOpen2Request extends ProtocolRequest {
|
|
// 0. 구분자
|
|
divCd: string;
|
|
// 1. 대화방제목(s)
|
|
roomName: string;
|
|
// 2n. 초대자 userSeq(n)...
|
|
userSeqs: number[];
|
|
}
|
|
|
|
export interface RoomOpen2Response extends ProtocolResponse {
|
|
// 0. 구분자
|
|
divCd: string;
|
|
// 1. 대화방제목(s)
|
|
roomName: string;
|
|
// 2. 대화방SEQ(s)
|
|
roomSeq: string;
|
|
// 3. 신규여부(y)
|
|
newRoom: boolean;
|
|
}
|
|
|
|
export const encodeRoomOpen2: ProtocolEncoder<RoomOpen2Request> = (
|
|
req: RoomOpen2Request
|
|
) => {
|
|
const bodyList: PacketBody[] = [];
|
|
|
|
bodyList.push({ type: PacketBodyValue.String, value: req.divCd });
|
|
bodyList.push({ type: PacketBodyValue.String, value: req.roomName.trim() });
|
|
for (const userSeq of req.userSeqs) {
|
|
bodyList.push({ type: PacketBodyValue.Integer, value: userSeq });
|
|
}
|
|
|
|
return bodyList;
|
|
};
|
|
|
|
export const decodeRoomOpen2: ProtocolDecoder<RoomOpen2Response> = (
|
|
message: ProtocolMessage
|
|
) => {
|
|
return {
|
|
divCd: message.bodyList[0],
|
|
roomName: message.bodyList[1],
|
|
roomSeq: message.bodyList[2],
|
|
newRoom: message.bodyList[3] === 'Y' ? true : false
|
|
} as RoomOpen2Response;
|
|
};
|