import { DataMessage } from '..'; import { Constants } from '../../..'; import { SignalService } from '../../../../protobuf'; import { MessageParams } from '../Message'; interface GroupInvitationMessageParams extends MessageParams { url: string; name: string; // if there is an expire timer set for the conversation, we need to set it. // otherwise, it will disable the expire timer on the receiving side. expireTimer?: number; } export class GroupInvitationMessage extends DataMessage { private readonly url: string; private readonly name: string; private readonly expireTimer?: number; constructor(params: GroupInvitationMessageParams) { super({ timestamp: params.timestamp, identifier: params.identifier }); this.url = params.url; this.name = params.name; this.expireTimer = params.expireTimer; } public dataProto(): SignalService.DataMessage { const openGroupInvitation = new SignalService.DataMessage.OpenGroupInvitation({ url: this.url, name: this.name, }); return new SignalService.DataMessage({ openGroupInvitation, expireTimer: this.expireTimer, }); } }