You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/session/messages/outgoing/content/sync/ContactSyncMessage.ts

101 lines
2.8 KiB
TypeScript

5 years ago
import { SignalService } from '../../../../../protobuf';
import { MessageParams } from '../../Message';
import { ContentMessage, SyncMessage } from '../';
5 years ago
import { ConversationController, textsecure, libloki, Whisper } from '../../../../../window';
import { PubKey } from '../../../../types';
import * as Data from '../../../../../../js/modules/data';
import { ChatMessage, DataMessage } from '../data';
5 years ago
interface ContactSyncMessageParams extends MessageParams {
5 years ago
// Send to our devices
linkedDevices: Array<PubKey>;
dataMessage?: DataMessage;
5 years ago
}
export class ContactSyncMessage extends SyncMessage {
5 years ago
private readonly linkedDevices: Array<PubKey>;
private readonly dataMessage?: DataMessage;
5 years ago
constructor(params: ContactSyncMessageParams) {
5 years ago
super(params);
5 years ago
this.linkedDevices = params.linkedDevices;
this.dataMessage = params.dataMessage;
this.syncProto();
5 years ago
}
5 years ago
protected syncProto(): SignalService.SyncMessage {
5 years ago
// const contacts = new SignalService.SyncMessage.Contacts();
// contacts.
// SignalService.SyncMessage.Configuration
// SignalService.SyncMessage.Contacts.create(
5 years ago
// );
// SignalService.SyncMessage.Groups
// SignalService.SyncMessage.OpenGroupDetails
// SignalService.SyncMessage.Read
5 years ago
5 years ago
const syncMessage = new SignalService.SyncMessage({
5 years ago
});
// TODO: Is this a request sync message or a basic sync message?
// Set request type
const request = new SignalService.SyncMessage.Request();
request.type = SignalService.SyncMessage.Request.Type.CONTACTS;
syncMessage.request = request;
5 years ago
5 years ago
contentMessage.syncMessage = syncMessage;
const silent = true;
const debugMessageType =
window.textsecure.OutgoingMessage.DebugMessageType.CONTACT_SYNC_SEND;
return syncMessage;
5 years ago
}
// protected dataProto() {
// if dataMess
// }
}
5 years ago
// LOOOK HERE!!! FOR OW TO BUILD
// // We need to sync across 3 contacts at a time
// // This is to avoid hitting storage server limit
// const chunked = _.chunk([...contactsSet], 3);
// const syncMessages = await Promise.all(
// chunked.map(c => libloki.api.createContactSyncProtoMessage(c))
// );
// const syncPromises = syncMessages
// .filter(message => message != null)
// .map(syncMessage => {
// const contentMessage = new textsecure.protobuf.Content();
// contentMessage.syncMessage = syncMessage;
// const silent = true;
// const debugMessageType =
// window.textsecure.OutgoingMessage.DebugMessageType.CONTACT_SYNC_SEND;
// return this.sendIndividualProto(
// primaryDeviceKey,
// contentMessage,
// Date.now(),
// silent,
// { debugMessageType } // options
// );
// });
// return Promise.all(syncPromises);
// },