From 22afe50c05a958851ddd09154378c9eba22b1806 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Wed, 30 Sep 2020 10:22:36 +1000 Subject: [PATCH] make messageQueue handle medium group message in sendToGroup --- js/models/conversations.js | 2 +- ts/receiver/mediumGroups.ts | 2 +- ts/session/sending/MessageQueue.ts | 10 +++++++++- ts/session/sending/MessageQueueInterface.ts | 3 ++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index b2ec3bf66..be3b0aa6b 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -1403,7 +1403,7 @@ await libsession .getMessageQueue() - .send(destinationPubkey, mediumGroupChatMessage); + .sendToGroup(mediumGroupChatMessage); } else { const closedGroupChatMessage = new libsession.Messages.Outgoing.ClosedGroupChatMessage( { diff --git a/ts/receiver/mediumGroups.ts b/ts/receiver/mediumGroups.ts index 9620e11d6..4dece5006 100644 --- a/ts/receiver/mediumGroups.ts +++ b/ts/receiver/mediumGroups.ts @@ -307,7 +307,7 @@ async function handleMediumGroupChange( return; } - // // Check that the sender is admin (make sure it words with multidevice) + // Check that the sender is admin (make sure it words with multidevice) const isAdmin = true; if (!isAdmin) { diff --git a/ts/session/sending/MessageQueue.ts b/ts/session/sending/MessageQueue.ts index b5e86e41d..4cddd8e73 100644 --- a/ts/session/sending/MessageQueue.ts +++ b/ts/session/sending/MessageQueue.ts @@ -7,6 +7,7 @@ import { ClosedGroupMessage, ContentMessage, ExpirationTimerUpdateMessage, + MediumGroupMessage, OpenGroupMessage, SessionRequestMessage, SyncMessage, @@ -51,7 +52,7 @@ export class MessageQueue implements MessageQueueInterface { } public async sendToGroup( - message: OpenGroupMessage | ContentMessage + message: OpenGroupMessage | ContentMessage | MediumGroupMessage ): Promise { // Open groups if (message instanceof OpenGroupMessage) { @@ -93,11 +94,18 @@ export class MessageQueue implements MessageQueueInterface { groupId = message.groupId; } else if (message instanceof ExpirationTimerUpdateMessage) { groupId = message.groupId; + } else if (message instanceof MediumGroupMessage) { + groupId = message.groupId; } if (!groupId) { throw new Error('Invalid group message passed in sendToGroup.'); } + // if this is a medium group message. We just need to send to the group pubkey + if (message instanceof MediumGroupMessage) { + window.log.warn('sending medium ', message, ' to ', groupId) + return this.send(PubKey.cast(groupId), message); + } // Get devices in group let recipients = await GroupUtils.getGroupMembers(groupId); diff --git a/ts/session/sending/MessageQueueInterface.ts b/ts/session/sending/MessageQueueInterface.ts index c30592741..af44e6e7f 100644 --- a/ts/session/sending/MessageQueueInterface.ts +++ b/ts/session/sending/MessageQueueInterface.ts @@ -1,6 +1,7 @@ import { ClosedGroupMessage, ContentMessage, + MediumGroupMessage, OpenGroupMessage, SyncMessage, } from '../messages/outgoing'; @@ -8,7 +9,7 @@ import { RawMessage } from '../types/RawMessage'; import { TypedEventEmitter } from '../utils'; import { PubKey } from '../types'; -type GroupMessageType = OpenGroupMessage | ClosedGroupMessage; +type GroupMessageType = OpenGroupMessage | ClosedGroupMessage | MediumGroupMessage; export interface MessageQueueInterfaceEvents { success: (