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

59 lines
1.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
constructor(params: ContactSyncMessageParams) {
5 years ago
super(params);
}
5 years ago
protected syncProto() {
// 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
const conversations = await Data.getAllConversations({ ConversationCollection: Whisper.ConversationCollection });
const contacts = conversations.filter((conversation: any) => {
return (
!conversation.isMe() &&
conversation.isPrivate() &&
!conversation.isSecondaryDevice() &&
conversation.isFriend()
);
});
const syncMessage = await libloki.api.createContactSyncProtoMessage(contacts) as SignalService.SyncMessage;
// 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
return syncMessage;
5 years ago
}
// protected dataProto() {
// if dataMess
// }
}