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; };