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

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

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

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

Loading…
Cancel
Save