From 4df35e24220d0743319ac8839a39f3fc51404863 Mon Sep 17 00:00:00 2001 From: Michael Coates Date: Tue, 8 Oct 2019 13:54:32 -0400 Subject: [PATCH 1/3] Add nameAlias option to disconnectFromChannel --- src/browser/api/channel.ts | 8 +++++++- src/browser/api_protocol/api_handlers/channel.ts | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/browser/api/channel.ts b/src/browser/api/channel.ts index ea411ef3e..4db5c42b9 100644 --- a/src/browser/api/channel.ts +++ b/src/browser/api/channel.ts @@ -125,8 +125,14 @@ export module Channel { subscriptionManager.removeSubscription(identity, channelId); } - export function disconnectFromChannel(identity: Identity, channelName: string): void { + export function disconnectFromChannel(identity: Identity, channelName: string, nameAlias: string): void { const disconnectedEvent = 'client-disconnected'; + const connectingWindow = getEntityIdentity(identity); + + if (connectingWindow && connectingWindow.isExternal && nameAlias) { + identity.name = nameAlias; + } + subscriptionManager.removeSubscription(identity, `${disconnectedEvent}-${channelName}`); } diff --git a/src/browser/api_protocol/api_handlers/channel.ts b/src/browser/api_protocol/api_handlers/channel.ts index 3cc5885b5..f440b8b82 100644 --- a/src/browser/api_protocol/api_handlers/channel.ts +++ b/src/browser/api_protocol/api_handlers/channel.ts @@ -73,9 +73,9 @@ export class ChannelApiHandler { } private disconnectFromChannel(identity: Identity, message: APIMessage, ack: AckFunc): void { - const { payload: { channelName } } = message; + const { payload: { channelName, nameAlias } } = message; - Channel.disconnectFromChannel(identity, channelName); + Channel.disconnectFromChannel(identity, channelName, nameAlias); ack(successAck); } From c673e57aeca51b1eb028f99e51701450d34e511e Mon Sep 17 00:00:00 2001 From: Michael Coates Date: Tue, 8 Oct 2019 14:55:26 -0400 Subject: [PATCH 2/3] Change payload shape --- src/browser/api/channel.ts | 7 ++++--- src/browser/api_protocol/api_handlers/channel.ts | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/browser/api/channel.ts b/src/browser/api/channel.ts index 4db5c42b9..256778f5f 100644 --- a/src/browser/api/channel.ts +++ b/src/browser/api/channel.ts @@ -125,12 +125,13 @@ export module Channel { subscriptionManager.removeSubscription(identity, channelId); } - export function disconnectFromChannel(identity: Identity, channelName: string, nameAlias: string): void { + export function disconnectFromChannel(identity: Identity, payload: any): void { + const { channelName, payload: disconnectionPayload } = payload; const disconnectedEvent = 'client-disconnected'; const connectingWindow = getEntityIdentity(identity); - if (connectingWindow && connectingWindow.isExternal && nameAlias) { - identity.name = nameAlias; + if (connectingWindow && connectingWindow.isExternal && disconnectionPayload.nameAlias) { + identity.name = disconnectionPayload.nameAlias; } subscriptionManager.removeSubscription(identity, `${disconnectedEvent}-${channelName}`); diff --git a/src/browser/api_protocol/api_handlers/channel.ts b/src/browser/api_protocol/api_handlers/channel.ts index f440b8b82..4e28963b6 100644 --- a/src/browser/api_protocol/api_handlers/channel.ts +++ b/src/browser/api_protocol/api_handlers/channel.ts @@ -73,9 +73,9 @@ export class ChannelApiHandler { } private disconnectFromChannel(identity: Identity, message: APIMessage, ack: AckFunc): void { - const { payload: { channelName, nameAlias } } = message; + const { payload } = message; - Channel.disconnectFromChannel(identity, channelName, nameAlias); + Channel.disconnectFromChannel(identity, payload); ack(successAck); } From 5ee8ec1d52dd59d7adbcdbe02cfbdae71cf276f2 Mon Sep 17 00:00:00 2001 From: Michael Coates Date: Wed, 9 Oct 2019 14:05:04 -0400 Subject: [PATCH 3/3] Remove getEntityIdentity check --- src/browser/api/channel.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/browser/api/channel.ts b/src/browser/api/channel.ts index 256778f5f..0ca2a43f4 100644 --- a/src/browser/api/channel.ts +++ b/src/browser/api/channel.ts @@ -128,9 +128,8 @@ export module Channel { export function disconnectFromChannel(identity: Identity, payload: any): void { const { channelName, payload: disconnectionPayload } = payload; const disconnectedEvent = 'client-disconnected'; - const connectingWindow = getEntityIdentity(identity); - if (connectingWindow && connectingWindow.isExternal && disconnectionPayload.nameAlias) { + if (disconnectionPayload && disconnectionPayload.nameAlias) { identity.name = disconnectionPayload.nameAlias; }