remove SyncMessageUtils.from

pull/1203/head
Mikunj 5 years ago
parent a972c328c7
commit d4dc8aa2ed

@ -1856,7 +1856,7 @@
const groupUpdateMessage = new libsession.Messages.Outgoing.ClosedGroupUpdateMessage( const groupUpdateMessage = new libsession.Messages.Outgoing.ClosedGroupUpdateMessage(
updateParams updateParams
); );
await this.sendClosedGroupMessage(groupUpdateMessage); await this.sendClosedGroupMessageWithSync(groupUpdateMessage);
}, },
sendGroupInfo(recipient) { sendGroupInfo(recipient) {
@ -1924,24 +1924,23 @@
quitGroup quitGroup
); );
await this.sendClosedGroupMessage(quitGroupMessage); await this.sendClosedGroupMessageWithSync(quitGroupMessage);
this.updateTextInputState(); this.updateTextInputState();
} }
}, },
async sendClosedGroupMessage(message) { async sendClosedGroupMessageWithSync(message) {
const { ClosedGroupMessage, ClosedGroupChatMessage } = libsession.Messages.Outgoing; const {
if ( ClosedGroupMessage,
!(message instanceof ClosedGroupMessage) ClosedGroupChatMessage,
) { } = libsession.Messages.Outgoing;
if (!(message instanceof ClosedGroupMessage)) {
throw new Error('Invalid closed group message.'); throw new Error('Invalid closed group message.');
} }
// Sync messages for Chat Messages need to be constructed after confirming send was successful. // Sync messages for Chat Messages need to be constructed after confirming send was successful.
if ( if (message instanceof ClosedGroupChatMessage) {
message instanceof ClosedGroupChatMessage
) {
throw new Error( throw new Error(
'ClosedGroupChatMessage should be constructed manually and sent' 'ClosedGroupChatMessage should be constructed manually and sent'
); );
@ -1950,9 +1949,13 @@
try { try {
await libsession.getMessageQueue().sendToGroup(message); await libsession.getMessageQueue().sendToGroup(message);
const syncMessage = libsession.Utils.SyncMessageUtils.fromClosedGroupMessage( const syncMessage = libsession.Utils.SyncMessageUtils.getSentSyncMessage(
message {
destination: message.groupId,
message,
}
); );
if (syncMessage) { if (syncMessage) {
await libsession.getMessageQueue().sendSyncMessage(syncMessage); await libsession.getMessageQueue().sendSyncMessage(syncMessage);
} }

@ -2,11 +2,11 @@ import { ContentMessage } from '../ContentMessage';
import { SignalService } from '../../../../../protobuf'; import { SignalService } from '../../../../../protobuf';
export abstract class DataMessage extends ContentMessage { export abstract class DataMessage extends ContentMessage {
public abstract dataProto(): SignalService.DataMessage;
protected contentProto(): SignalService.Content { protected contentProto(): SignalService.Content {
return new SignalService.Content({ return new SignalService.Content({
dataMessage: this.dataProto(), dataMessage: this.dataProto(),
}); });
} }
protected abstract dataProto(): SignalService.DataMessage;
} }

@ -8,7 +8,7 @@ interface SentSyncMessageParams extends MessageParams {
expirationStartTimestamp?: number; expirationStartTimestamp?: number;
sentTo?: Array<PubKey>; sentTo?: Array<PubKey>;
unidentifiedDeliveries?: Array<PubKey>; unidentifiedDeliveries?: Array<PubKey>;
destination?: PubKey; destination?: PubKey | string;
} }
export class SentSyncMessage extends SyncMessage { export class SentSyncMessage extends SyncMessage {
@ -25,7 +25,9 @@ export class SentSyncMessage extends SyncMessage {
this.expirationStartTimestamp = params.expirationStartTimestamp; this.expirationStartTimestamp = params.expirationStartTimestamp;
this.sentTo = params.sentTo; this.sentTo = params.sentTo;
this.unidentifiedDeliveries = params.unidentifiedDeliveries; this.unidentifiedDeliveries = params.unidentifiedDeliveries;
this.destination = params.destination;
const { destination } = params;
this.destination = destination ? PubKey.cast(destination) : undefined;
} }
protected syncProto(): SignalService.SyncMessage { protected syncProto(): SignalService.SyncMessage {

@ -1,71 +1,32 @@
import * as _ from 'lodash'; import * as _ from 'lodash';
import { UserUtil } from '../../util/'; import { UserUtil } from '../../util/';
import { getAllConversations } from '../../../js/modules/data'; import { getAllConversations } from '../../../js/modules/data';
import { MultiDeviceProtocol } from '../protocols';
import ByteBuffer from 'bytebuffer';
import { import {
ClosedGroupChatMessage,
ClosedGroupMessage,
ClosedGroupRequestInfoMessage,
ContentMessage, ContentMessage,
ReadReceiptMessage, DataMessage,
SentSyncMessage, SentSyncMessage,
SyncMessage,
SyncReadMessage,
} from '../messages/outgoing'; } from '../messages/outgoing';
import { MultiDeviceProtocol } from '../protocols';
import ByteBuffer from 'bytebuffer';
import { PubKey } from '../types'; import { PubKey } from '../types';
import { SignalService } from '../../protobuf';
export function from(
message: ContentMessage,
destination: string | PubKey
): SyncMessage | undefined {
if (message instanceof SyncMessage) {
return message;
}
if (message instanceof ClosedGroupMessage) {
return fromClosedGroupMessage(message);
}
if (message instanceof ReadReceiptMessage) {
const pubKey = PubKey.cast(destination);
const read = message.timestamps.map(timestamp => ({
sender: pubKey.key,
timestamp,
}));
return new SyncReadMessage({
timestamp: Date.now(),
readMessages: read,
});
}
return undefined;
}
export function fromClosedGroupMessage( export function getSentSyncMessage(params: {
message: ClosedGroupMessage message: ContentMessage;
): SyncMessage | undefined { expirationStartTimestamp?: number;
// Sync messages for ClosedGroupChatMessage need to be built manually sentTo?: Array<PubKey>;
// This is because it needs the `expireStartTimestamp` field. destination: PubKey | string;
if ( }): SentSyncMessage | undefined {
message instanceof ClosedGroupRequestInfoMessage || if (!(params.message instanceof DataMessage)) {
message instanceof ClosedGroupChatMessage
) {
return undefined;
}
const pubKey = PubKey.cast(message.groupId);
const content = SignalService.Content.decode(message.plainTextBuffer());
if (!content.dataMessage) {
return undefined; return undefined;
} }
const pubKey = PubKey.cast(params.destination);
return new SentSyncMessage({ return new SentSyncMessage({
timestamp: message.timestamp, timestamp: Date.now(),
destination: pubKey, destination: pubKey,
dataMessage: content.dataMessage, dataMessage: params.message.dataProto(),
expirationStartTimestamp: params.expirationStartTimestamp,
sentTo: params.sentTo,
}); });
} }

Loading…
Cancel
Save