From 0beb440dcc53a20dc26b713117a374dce9dab885 Mon Sep 17 00:00:00 2001 From: leejh Date: Wed, 25 Sep 2019 17:33:44 +0900 Subject: [PATCH] bug fixed and rename --- .../src/lib/models/send.ts | 15 +++++-- .../src/lib/models/exit.ts | 39 ++++++++++++++++--- .../src/lib/models/invite.ts | 11 ++++-- .../src/lib/models/update.ts | 16 ++++++-- .../src/lib/services/room-protocol.service.ts | 21 +++++----- 5 files changed, 79 insertions(+), 23 deletions(-) diff --git a/projects/ucap-webmessenger-protocol-event/src/lib/models/send.ts b/projects/ucap-webmessenger-protocol-event/src/lib/models/send.ts index 52fb95e4..e1b57327 100644 --- a/projects/ucap-webmessenger-protocol-event/src/lib/models/send.ts +++ b/projects/ucap-webmessenger-protocol-event/src/lib/models/send.ts @@ -6,7 +6,8 @@ import { ProtocolDecoder, ProtocolMessage, ProtocolStream, - PacketBodyValue + PacketBodyValue, + ProtocolNotification } from '@ucap-webmessenger/protocol'; import { EventType } from '../types/event.type'; import { PushStatus } from '../types/pushStatus.type'; @@ -41,17 +42,25 @@ export interface SendResponse extends ProtocolResponse { senderName: string; } -export interface SendNotification extends SendResponse { +export interface SendNotification extends ProtocolNotification { // 대화방SEQ(s) + roomSeq: string; // 이벤트SEQ(n) + seq: number; // 이벤트타입(s) + type: EventType; // 발생일시(s) + sendDate: string; // 이벤트내용(s) + message: string; // 수신자수 + receiverCount: number; // 알림상태(s) PC 경우에만 관여됨 N: 푸시를 보내지 않은 이벤트 S: 푸시를 보낸 이벤트 + pushStatus: PushStatus; // 강퇴 타입(s) + ForcedExitType: string; // 요청자 이름(s) - + senderName: string; // 사용자아이디(s) id?: string; // 회사코드(s) diff --git a/projects/ucap-webmessenger-protocol-room/src/lib/models/exit.ts b/projects/ucap-webmessenger-protocol-room/src/lib/models/exit.ts index a33dd30f..45389e5e 100644 --- a/projects/ucap-webmessenger-protocol-room/src/lib/models/exit.ts +++ b/projects/ucap-webmessenger-protocol-room/src/lib/models/exit.ts @@ -5,7 +5,9 @@ import { PacketBody, PacketBodyValue, ProtocolDecoder, - ProtocolMessage + ProtocolMessage, + BodyStringDivider, + ProtocolNotification } from '@ucap-webmessenger/protocol'; import { RoomExitType } from '../types/room.type'; @@ -19,6 +21,11 @@ export interface ExitResponse extends ProtocolResponse { roomSeq: string; } +export interface ExitNotification extends ProtocolNotification { + // 대화방SEQ(s) + roomSeq: string; +} + export const encodeExit: ProtocolEncoder = (req: ExitRequest) => { const bodyList: PacketBody[] = []; @@ -33,18 +40,22 @@ export const decodeExit: ProtocolDecoder = ( roomSeq: message.bodyList[0] } as ExitResponse; }; -export const decodeExitNotification: ProtocolDecoder = ( +export const decodeExitNotification: ProtocolDecoder = ( message: ProtocolMessage ) => { return { roomSeq: message.bodyList[0] - } as ExitResponse; + } as ExitNotification; }; export interface ExitAllRequest extends ProtocolRequest { // 대화방SEQ(s) roomSeq: string[]; } +export interface ExitAllResponse extends ProtocolResponse { + // 대화방SEQ(s) + roomSeq: string[]; +} export const encodeAllExit: ProtocolEncoder = ( req: ExitAllRequest @@ -54,6 +65,13 @@ export const encodeAllExit: ProtocolEncoder = ( bodyList.push({ type: PacketBodyValue.String, value: req.roomSeq.join(',') }); return bodyList; }; +export const decodeAllExit: ProtocolDecoder = ( + message: ProtocolMessage +) => { + return { + roomSeq: message.bodyList[0].split(BodyStringDivider) + } as ExitAllResponse; +}; export interface ExitForcingRequest extends ProtocolRequest { // 대화방SEQ(s) @@ -77,6 +95,17 @@ export interface ExitForcingResponse extends ProtocolRequest { userSeqs: number[]; } +export interface ExitForcingNotification extends ProtocolNotification { + // 대화방SEQ(s) + roomSeq: string; + // 강퇴요청타입(s) + type: RoomExitType; + // sender사용자SEQ(n) + senderSeq: number; + // 사용자SEQ(n)... + userSeqs: number[]; +} + export const encodeExitForcing: ProtocolEncoder = ( req: ExitForcingRequest ) => { @@ -106,7 +135,7 @@ export const decodeExitForcing: ProtocolDecoder = ( } as ExitForcingResponse; }; export const decodeExitForcingNotification: ProtocolDecoder< - ExitForcingResponse + ExitForcingNotification > = (message: ProtocolMessage) => { let userSeqs: number[] = []; if (message.bodyList.length > 3) { @@ -117,5 +146,5 @@ export const decodeExitForcingNotification: ProtocolDecoder< type: message.bodyList[1] as RoomExitType, senderSeq: message.bodyList[2], userSeqs - } as ExitForcingResponse; + } as ExitForcingNotification; }; diff --git a/projects/ucap-webmessenger-protocol-room/src/lib/models/invite.ts b/projects/ucap-webmessenger-protocol-room/src/lib/models/invite.ts index 36b5cc63..43ef86c7 100644 --- a/projects/ucap-webmessenger-protocol-room/src/lib/models/invite.ts +++ b/projects/ucap-webmessenger-protocol-room/src/lib/models/invite.ts @@ -5,7 +5,8 @@ import { PacketBody, PacketBodyValue, ProtocolDecoder, - ProtocolMessage + ProtocolMessage, + ProtocolNotification } from '@ucap-webmessenger/protocol'; export interface InviteRequest extends ProtocolRequest { @@ -19,6 +20,10 @@ export interface InviteResponse extends ProtocolResponse { // 0. 대화방SEQ(s) roomSeq: string; } +export interface InviteNotification extends ProtocolNotification { + // 0. 대화방SEQ(s) + roomSeq: string; +} export const encodeInvite: ProtocolEncoder = ( req: InviteRequest @@ -41,10 +46,10 @@ export const decodeInvite: ProtocolDecoder = ( } as InviteResponse; }; -export const decodeInviteNotification: ProtocolDecoder = ( +export const decodeInviteNotification: ProtocolDecoder = ( message: ProtocolMessage ) => { return { roomSeq: message.bodyList[0] - } as InviteResponse; + } as InviteNotification; }; diff --git a/projects/ucap-webmessenger-protocol-room/src/lib/models/update.ts b/projects/ucap-webmessenger-protocol-room/src/lib/models/update.ts index 280cf68a..30301441 100644 --- a/projects/ucap-webmessenger-protocol-room/src/lib/models/update.ts +++ b/projects/ucap-webmessenger-protocol-room/src/lib/models/update.ts @@ -5,7 +5,8 @@ import { PacketBody, PacketBodyValue, ProtocolDecoder, - ProtocolMessage + ProtocolMessage, + ProtocolNotification } from '@ucap-webmessenger/protocol'; export interface UpdateRequest extends ProtocolRequest { @@ -110,6 +111,15 @@ export interface UpdateFontResponse extends ProtocolResponse { senderSeq: number; } +export interface UpdateFontNotification extends ProtocolNotification { + // 대화방SEQ(s) + roomSeq: string; + // 폰트색(s) cf)0x000000 형태의 스트링 + fontColor: string; + // sender사용자SEQ(n) + senderSeq: number; +} + export const encodeUpdateFont: ProtocolEncoder = ( req: UpdateFontRequest ) => { @@ -132,11 +142,11 @@ export const decodeUpdateFont: ProtocolDecoder = ( }; export const decodeUpdateFontNotification: ProtocolDecoder< - UpdateFontResponse + UpdateFontNotification > = (message: ProtocolMessage) => { return { roomSeq: message.bodyList[0], fontColor: message.bodyList[1], senderSeq: message.bodyList[2] - } as UpdateFontResponse; + } as UpdateFontNotification; }; diff --git a/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts b/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts index 96d3971c..579c3b3f 100644 --- a/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts +++ b/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts @@ -74,7 +74,9 @@ import { ExitForcingRequest, ExitForcingResponse, encodeExitForcing, - decodeExitForcing + decodeExitForcing, + decodeAllExit, + ExitAllResponse } from '../models/exit'; import { UpdateRequest, @@ -172,8 +174,8 @@ export class RoomProtocolService { ...encodeUserStatusOffline(req) ) .pipe( + take(1), map(res => { - take(1); return decodeUserStatusOffline(res); }) ); @@ -183,18 +185,19 @@ export class RoomProtocolService { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_EXIT_REQ, ...encodeExit(req)) .pipe( + take(1), map(res => { - take(1); return decodeExit(res); }) ); } - public exitAll(req: ExitAllRequest): Observable { + public exitAll(req: ExitAllRequest): Observable { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_EXIT_ALL_REQ, ...encodeAllExit(req)) .pipe( + take(1), map(res => { - take(1); + return decodeAllExit(res); }) ); } @@ -206,8 +209,8 @@ export class RoomProtocolService { ...encodeExitForcing(req) ) .pipe( + take(1), map(res => { - take(1); return decodeExitForcing(res); }) ); @@ -217,8 +220,8 @@ export class RoomProtocolService { return this.protocolService .call(SVC_TYPE_ROOM, SSVC_TYPE_ROOM_UPD_REQ, ...encodeUpdate(req)) .pipe( + take(1), map(res => { - take(1); return decodeUpdate(res); }) ); @@ -233,8 +236,8 @@ export class RoomProtocolService { ...encodeUpdateTimerSet(req) ) .pipe( + take(1), map(res => { - take(1); return decodeUpdateTimerSet(res); }) ); @@ -247,8 +250,8 @@ export class RoomProtocolService { ...encodeUpdateFont(req) ) .pipe( + take(1), map(res => { - take(1); return decodeUpdateFont(res); }) );