refactor to Visible and ControlMessage types
parent
13d21e94ca
commit
79193ee7be
@ -1,5 +1,5 @@
|
||||
import { Message } from '../Message';
|
||||
import { SignalService } from '../../../../protobuf';
|
||||
import { Message } from '.';
|
||||
import { SignalService } from '../../../protobuf';
|
||||
|
||||
export abstract class ContentMessage extends Message {
|
||||
public plainTextBuffer(): Uint8Array {
|
@ -1,6 +1,6 @@
|
||||
import { ContentMessage } from '../ContentMessage';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { TTL_DEFAULT } from '../../../../constants';
|
||||
import { ContentMessage } from '.';
|
||||
import { SignalService } from '../../../protobuf';
|
||||
import { TTL_DEFAULT } from '../../constants';
|
||||
|
||||
export abstract class DataMessage extends ContentMessage {
|
||||
public abstract dataProto(): SignalService.DataMessage;
|
@ -1,51 +0,0 @@
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
||||
} from './ClosedGroupMessage';
|
||||
import { fromHexToArray } from '../../../../../utils/String';
|
||||
|
||||
export interface ClosedGroupUpdateMessageParams
|
||||
extends ClosedGroupMessageParams {
|
||||
name: string;
|
||||
members: Array<string>;
|
||||
expireTimer: number;
|
||||
}
|
||||
|
||||
export class ClosedGroupUpdateMessage extends ClosedGroupMessage {
|
||||
private readonly name: string;
|
||||
private readonly members: Array<string>;
|
||||
|
||||
constructor(params: ClosedGroupUpdateMessageParams) {
|
||||
super({
|
||||
timestamp: params.timestamp,
|
||||
identifier: params.identifier,
|
||||
groupId: params.groupId,
|
||||
expireTimer: params.expireTimer,
|
||||
});
|
||||
this.name = params.name;
|
||||
this.members = params.members;
|
||||
|
||||
// members can be empty. It means noone is in the group anymore and it happens when an admin leaves the group
|
||||
if (!params.members) {
|
||||
throw new Error('Members must be set');
|
||||
}
|
||||
if (!params.name || params.name.length === 0) {
|
||||
throw new Error('Name must cannot be empty');
|
||||
}
|
||||
}
|
||||
|
||||
public dataProto(): SignalService.DataMessage {
|
||||
const dataMessage = new SignalService.DataMessage();
|
||||
|
||||
dataMessage.closedGroupControlMessage = new SignalService.DataMessage.ClosedGroupControlMessage();
|
||||
dataMessage.closedGroupControlMessage.type =
|
||||
SignalService.DataMessage.ClosedGroupControlMessage.Type.UPDATE;
|
||||
dataMessage.closedGroupControlMessage.name = this.name;
|
||||
dataMessage.closedGroupControlMessage.members = this.members.map(
|
||||
fromHexToArray
|
||||
);
|
||||
|
||||
return dataMessage;
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
export * from './ClosedGroupEncryptionPairMessage';
|
||||
export * from './ClosedGroupEncryptionPairRequestMessage';
|
||||
export * from './ClosedGroupEncryptionPairReplyMessage';
|
||||
export * from './ClosedGroupNewMessage';
|
||||
export * from './ClosedGroupAddedMembersMessage';
|
||||
export * from './ClosedGroupNameChangeMessage';
|
||||
export * from './ClosedGroupRemovedMembersMessage';
|
||||
export * from './ClosedGroupUpdateMessage';
|
@ -1,9 +0,0 @@
|
||||
export * from './DataMessage';
|
||||
export * from './GroupInvitationMessage';
|
||||
export * from './ChatMessage';
|
||||
export * from './group/ClosedGroupMessage';
|
||||
export * from './group/ClosedGroupChatMessage';
|
||||
export * from './group/ClosedGroupEncryptionPairMessage';
|
||||
export * from './group/ClosedGroupNewMessage';
|
||||
export * from './group/ClosedGroupMessage';
|
||||
export * from './ExpirationTimerUpdateMessage';
|
@ -1,4 +0,0 @@
|
||||
export * from './ContentMessage';
|
||||
export * from './TypingMessage';
|
||||
export * from './data';
|
||||
export * from './receipt';
|
@ -1,3 +0,0 @@
|
||||
export * from './ReceiptMessage';
|
||||
export * from './DeliveryReceiptMessage';
|
||||
export * from './ReadReceiptMessage';
|
@ -1,12 +1,12 @@
|
||||
// this is not a very good name, but a configuration message is a message sent to our other devices so sync our current public and closed groups
|
||||
|
||||
import { ContentMessage } from './ContentMessage';
|
||||
import { SignalService } from '../../../../protobuf';
|
||||
import { MessageParams } from '../Message';
|
||||
import { Constants } from '../../..';
|
||||
import { ECKeyPair } from '../../../../receiver/keypairs';
|
||||
import { fromHexToArray } from '../../../utils/String';
|
||||
import { PubKey } from '../../../types';
|
||||
import { ContentMessage } from '..';
|
||||
|
||||
interface ConfigurationMessageParams extends MessageParams {
|
||||
activeClosedGroups: Array<ConfigurationMessageClosedGroup>;
|
@ -1,7 +1,7 @@
|
||||
import { ContentMessage } from './ContentMessage';
|
||||
import { SignalService } from '../../../../protobuf';
|
||||
import { MessageParams } from '../Message';
|
||||
import { Constants } from '../../..';
|
||||
import { ContentMessage } from '..';
|
||||
|
||||
interface TypingMessageParams extends MessageParams {
|
||||
isTyping: boolean;
|
@ -1,7 +1,7 @@
|
||||
import { fromHex } from 'bytebuffer';
|
||||
import { Constants } from '../../../../..';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../../utils/String';
|
||||
import { Constants } from '../../../..';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../utils/String';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
@ -1,6 +1,5 @@
|
||||
import { Constants } from '../../../../..';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../../utils/String';
|
||||
import { Constants } from '../../../..';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
@ -1,5 +1,5 @@
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../../utils/String';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../utils/String';
|
||||
import { ClosedGroupEncryptionPairMessage } from './ClosedGroupEncryptionPairMessage';
|
||||
|
||||
/**
|
@ -1,9 +1,12 @@
|
||||
import { Constants } from '../../../../..';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { Constants } from '../../../..';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
||||
|
||||
export class ClosedGroupEncryptionPairRequestMessage extends ClosedGroupMessage {
|
||||
public dataProto(): SignalService.DataMessage {
|
||||
throw new Error(
|
||||
'ClosedGroupEncryptionPairRequestMessage: This is unused for now '
|
||||
);
|
||||
const dataMessage = super.dataProto();
|
||||
|
||||
// tslint:disable: no-non-null-assertion
|
@ -1,20 +1,8 @@
|
||||
import { Constants } from '../../../../..';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
||||
} from './ClosedGroupMessage';
|
||||
import { Constants } from '../../../..';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
||||
|
||||
export class ClosedGroupMemberLeftMessage extends ClosedGroupMessage {
|
||||
constructor(params: ClosedGroupMessageParams) {
|
||||
super({
|
||||
timestamp: params.timestamp,
|
||||
identifier: params.identifier,
|
||||
groupId: params.groupId,
|
||||
expireTimer: params.expireTimer,
|
||||
});
|
||||
}
|
||||
|
||||
public dataProto(): SignalService.DataMessage {
|
||||
const dataMessage = super.dataProto();
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { DataMessage } from '../DataMessage';
|
||||
import { MessageParams } from '../../../Message';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { PubKey } from '../../../../../types/PubKey';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { PubKey } from '../../../../types';
|
||||
import { DataMessage } from '../../DataMessage';
|
||||
import { MessageParams } from '../../Message';
|
||||
|
||||
export interface ClosedGroupMessageParams extends MessageParams {
|
||||
groupId: string | PubKey;
|
@ -1,5 +1,5 @@
|
||||
import { Constants } from '../../../../..';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { Constants } from '../../../..';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
@ -1,10 +1,10 @@
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
||||
} from './ClosedGroupMessage';
|
||||
import { fromHexToArray } from '../../../../../utils/String';
|
||||
import { ECKeyPair } from '../../../../../../receiver/keypairs';
|
||||
import { fromHexToArray } from '../../../../utils/String';
|
||||
import { ECKeyPair } from '../../../../../receiver/keypairs';
|
||||
|
||||
export interface ClosedGroupNewMessageParams extends ClosedGroupMessageParams {
|
||||
name: string;
|
@ -1,6 +1,6 @@
|
||||
import { Constants } from '../../../../..';
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../../utils/String';
|
||||
import { Constants } from '../../../..';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { fromHexToArray } from '../../../../utils/String';
|
||||
import {
|
||||
ClosedGroupMessage,
|
||||
ClosedGroupMessageParams,
|
@ -1,7 +1,7 @@
|
||||
import { ContentMessage } from '../ContentMessage';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { MessageParams } from '../../Message';
|
||||
import { Constants } from '../../../..';
|
||||
import { ContentMessage } from '../..';
|
||||
|
||||
interface ReceiptMessageParams extends MessageParams {
|
||||
timestamps: Array<number>;
|
@ -1,5 +1,7 @@
|
||||
import { Message } from './Message';
|
||||
import { OpenGroupMessage } from './OpenGroupMessage';
|
||||
|
||||
export * from './content/';
|
||||
export * from './ContentMessage';
|
||||
export * from './DataMessage';
|
||||
|
||||
export { Message, OpenGroupMessage };
|
||||
|
@ -1,20 +1,20 @@
|
||||
import { SignalService } from '../../../../../../protobuf';
|
||||
import { ChatMessage } from '../ChatMessage';
|
||||
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
||||
import { PubKey } from '../../../../../types';
|
||||
import { Constants } from '../../../../..';
|
||||
import { StringUtils } from '../../../../../utils';
|
||||
|
||||
interface ClosedGroupChatMessageParams {
|
||||
import { Constants } from '../../..';
|
||||
import { SignalService } from '../../../../protobuf';
|
||||
import { PubKey } from '../../../types';
|
||||
import { StringUtils } from '../../../utils';
|
||||
import { VisibleMessage } from './VisibleMessage';
|
||||
import { ClosedGroupMessage } from '../controlMessage/group/ClosedGroupMessage';
|
||||
|
||||
interface ClosedGroupVisibleMessageParams {
|
||||
identifier?: string;
|
||||
groupId: string | PubKey;
|
||||
chatMessage: ChatMessage;
|
||||
chatMessage: VisibleMessage;
|
||||
}
|
||||
|
||||
export class ClosedGroupChatMessage extends ClosedGroupMessage {
|
||||
private readonly chatMessage: ChatMessage;
|
||||
export class ClosedGroupVisibleMessage extends ClosedGroupMessage {
|
||||
private readonly chatMessage: VisibleMessage;
|
||||
|
||||
constructor(params: ClosedGroupChatMessageParams) {
|
||||
constructor(params: ClosedGroupVisibleMessageParams) {
|
||||
super({
|
||||
timestamp: params.chatMessage.timestamp,
|
||||
identifier: params.identifier ?? params.chatMessage.identifier,
|
@ -1,7 +1,7 @@
|
||||
import { DataMessage } from './DataMessage';
|
||||
import { SignalService } from '../../../../../protobuf';
|
||||
import { MessageParams } from '../../Message';
|
||||
import { Constants } from '../../../..';
|
||||
import { DataMessage } from '..';
|
||||
import { Constants } from '../../..';
|
||||
import { SignalService } from '../../../../protobuf';
|
||||
import { MessageParams } from '../Message';
|
||||
|
||||
interface GroupInvitationMessageParams extends MessageParams {
|
||||
serverAddress: string;
|
Loading…
Reference in New Issue