47 lines
1.2 KiB
TypeScript
Raw Normal View History

2019-09-26 14:43:31 +09:00
import {
ProtocolRequest,
ProtocolResponse,
ProtocolEncoder,
PacketBody,
PacketBodyValue,
ProtocolDecoder,
2019-10-10 12:14:01 +09:00
ProtocolMessage,
decodeProtocolMessage
2019-09-26 14:43:31 +09:00
} from '@ucap-webmessenger/protocol';
import { MessageIndexType } from '../types/message-index.type';
export interface MessageUpdateRequest extends ProtocolRequest {
// 상태타입(s)
index: MessageIndexType;
// 상태메시지(s)
statusMessage: string;
}
export interface MessageUpdateResponse extends ProtocolResponse {
// 상태타입(s)
index: MessageIndexType;
// 상태메시지(s)
statusMessage: string;
}
export const encodeMessageUpdate: ProtocolEncoder<MessageUpdateRequest> = (
req: MessageUpdateRequest
) => {
const bodyList: PacketBody[] = [];
bodyList.push(
{ type: PacketBodyValue.Integer, value: req.index },
{ type: PacketBodyValue.String, value: req.statusMessage }
);
return bodyList;
};
export const decodeMessageUpdate: ProtocolDecoder<MessageUpdateResponse> = (
message: ProtocolMessage
) => {
2019-10-10 12:14:01 +09:00
return decodeProtocolMessage(message, {
2019-09-26 14:43:31 +09:00
index: message.bodyList[0] as MessageIndexType,
statusMessage: message.bodyList[1]
2019-10-10 12:14:01 +09:00
} as MessageUpdateResponse);
2019-09-26 14:43:31 +09:00
};