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/controlMessage/group/ClosedGroupRemovedMembersMe...

36 lines
1.2 KiB
TypeScript

import { SignalService } from '../../../../../protobuf';
import { fromHexToArray } from '../../../../utils/String';
import { ClosedGroupMessage, ClosedGroupMessageParams } from './ClosedGroupMessage';
interface ClosedGroupRemovedMembersMessageParams extends ClosedGroupMessageParams {
removedMembers: Array<string>;
}
export class ClosedGroupRemovedMembersMessage extends ClosedGroupMessage {
private readonly removedMembers: Array<string>;
constructor(params: ClosedGroupRemovedMembersMessageParams) {
super({
timestamp: params.timestamp,
identifier: params.identifier,
groupId: params.groupId,
expirationType: params.expirationType,
expireTimer: params.expireTimer,
});
this.removedMembers = params.removedMembers;
if (!this.removedMembers?.length) {
throw new Error('removedMembers cannot be empty');
}
}
public dataProto(): SignalService.DataMessage {
const dataMessage = super.dataProto();
dataMessage.closedGroupControlMessage!.type =
SignalService.DataMessage.ClosedGroupControlMessage.Type.MEMBERS_REMOVED;
dataMessage.closedGroupControlMessage!.members = this.removedMembers.map(fromHexToArray);
return dataMessage;
}
}