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/OpenGroupSyncMessage.ts

34 lines
996 B
TypeScript

import { SyncMessage } from './SyncMessage';
import { SignalService } from '../../../../../protobuf';
import { MessageParams } from '../../Message';
interface OpenGroupDetails {
url: string;
channelId: number;
}
interface OpenGroupSyncMessageParams extends MessageParams {
openGroupsDetails: [OpenGroupDetails];
}
export abstract class OpenGroupSyncMessage extends SyncMessage {
public readonly openGroupsDetails: [OpenGroupDetails];
constructor(params: OpenGroupSyncMessageParams) {
super({ timestamp: params.timestamp, identifier: params.identifier });
this.openGroupsDetails = params.openGroupsDetails;
}
protected syncProto(): SignalService.SyncMessage {
const syncMessage = super.syncProto();
syncMessage.openGroups = this.openGroupsDetails.map(openGroup => {
return new SignalService.SyncMessage.OpenGroupDetails({
url: openGroup.url.split('@').pop(),
channelId: openGroup.channelId,
});
});
return syncMessage;
}
}