chore: cleaned up proto to ts classes

pull/2963/head
Audric Ackermann 1 year ago
parent d839ff936d
commit c21f1a745f

@ -8,4 +8,6 @@ export abstract class DataMessage extends ExpirableMessage {
dataMessage: this.dataProto(),
});
}
public abstract dataProto(): SignalService.DataMessage;
}

@ -38,17 +38,8 @@ export class ExpirableMessage extends ContentMessage {
});
}
public dataProto(): SignalService.DataMessage {
return new SignalService.DataMessage({
// TODO legacy messages support will be removed in a future release
expireTimer:
(this.expirationType === 'unknown' || !this.expirationType) &&
this.expireTimer &&
this.expireTimer > -1
? this.expireTimer
: undefined,
});
}
// Note: dataProto() or anything else must be implemented in the child classes
// public dataProto()
public getDisappearingMessageType(): DisappearingMessageType | undefined {
return this.expirationType || undefined;

@ -41,7 +41,7 @@ export class CallMessage extends ExpirableMessage {
public contentProto(): SignalService.Content {
const content = super.contentProto();
content.callMessage = this.dataCallProto();
content.callMessage = this.callProto();
return content;
}
@ -49,7 +49,7 @@ export class CallMessage extends ExpirableMessage {
return TTL_DEFAULT.CALL_MESSAGE;
}
private dataCallProto(): SignalService.CallMessage {
private callProto(): SignalService.CallMessage {
return new SignalService.CallMessage({
type: this.type,
sdpMLineIndexes: this.sdpMLineIndexes,

@ -28,11 +28,11 @@ export class DataExtractionNotificationMessage extends ExpirableMessage {
public contentProto(): SignalService.Content {
const content = super.contentProto();
content.dataExtractionNotification = this.dataExtractionProto();
content.dataExtractionNotification = this.extractionProto();
return content;
}
protected dataExtractionProto(): SignalService.DataExtractionNotification {
protected extractionProto(): SignalService.DataExtractionNotification {
const ACTION_ENUM = SignalService.DataExtractionNotification.Type;
const action = ACTION_ENUM.MEDIA_SAVED; // we cannot know when user screenshots, so it can only be a media saved on desktop

@ -37,7 +37,7 @@ export class ExpirationTimerUpdateMessage extends DataMessage {
}
public dataProto(): SignalService.DataMessage {
const data = super.dataProto();
const data = new SignalService.DataMessage({});
data.flags = SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE;

@ -1,12 +1,13 @@
import { SignalService } from '../../../../../protobuf';
import { PubKey } from '../../../../types';
import { ExpirableMessage, ExpirableMessageParams } from '../../ExpirableMessage';
import { DataMessage } from '../../DataMessage';
import { ExpirableMessageParams } from '../../ExpirableMessage';
export interface ClosedGroupMessageParams extends ExpirableMessageParams {
groupId: string | PubKey;
}
export abstract class ClosedGroupMessage extends ExpirableMessage {
export abstract class ClosedGroupMessage extends DataMessage {
public readonly groupId: PubKey;
constructor(params: ClosedGroupMessageParams) {
@ -41,7 +42,7 @@ export abstract class ClosedGroupMessage extends ExpirableMessage {
}
public dataProto(): SignalService.DataMessage {
const dataMessage = super.dataProto();
const dataMessage = new SignalService.DataMessage({});
dataMessage.closedGroupControlMessage =
new SignalService.DataMessage.ClosedGroupControlMessage();

@ -1,7 +1,7 @@
import { GroupPubkeyType } from 'libsession_util_nodejs';
import { SignalService } from '../../../../../protobuf';
import { LibSodiumWrappers } from '../../../../crypto';
import { ExpirableMessage, ExpirableMessageParams } from '../../ExpirableMessage';
import { DataMessage } from '../../DataMessage';
import { ExpirableMessageParams } from '../../ExpirableMessage';
export type AdminSigDetails = {
secretKey: Uint8Array;
@ -12,7 +12,7 @@ export interface GroupUpdateMessageParams extends ExpirableMessageParams {
groupPk: GroupPubkeyType;
}
export abstract class GroupUpdateMessage extends ExpirableMessage {
export abstract class GroupUpdateMessage extends DataMessage {
public readonly destination: GroupUpdateMessageParams['groupPk'];
constructor(params: GroupUpdateMessageParams) {
@ -24,7 +24,8 @@ export abstract class GroupUpdateMessage extends ExpirableMessage {
}
}
public abstract dataProto(): SignalService.DataMessage;
// do not override the dataProto here, we want it to be defined in the child classes
// public abstract dataProto(): SignalService.DataMessage;
public abstract isFor1o1Swarm(): boolean;
public abstract isForGroupSwarm(): boolean;

@ -3,7 +3,7 @@ import { SignalService } from '../../../../protobuf';
import { SnodeNamespaces } from '../../../apis/snode_api/namespaces';
import { PubKey } from '../../../types';
import { StringUtils } from '../../../utils';
import { ExpirableMessage } from '../ExpirableMessage';
import { DataMessage } from '../DataMessage';
import {
ClosedGroupMessage,
ClosedGroupMessageParams,
@ -70,7 +70,7 @@ type WithDestinationGroupPk = { destination: GroupPubkeyType };
type WithGroupMessageNamespace = { namespace: SnodeNamespaces.ClosedGroupMessages };
// TODO audric debugger This will need to extend ExpirableMessage after Disappearing Messages V2 is merged and checkd still working
export class ClosedGroupV2VisibleMessage extends ExpirableMessage {
export class ClosedGroupV2VisibleMessage extends DataMessage {
private readonly chatMessage: VisibleMessage;
public readonly destination: GroupPubkeyType;
public readonly namespace: SnodeNamespaces.ClosedGroupMessages;

@ -1,12 +1,13 @@
import { SignalService } from '../../../../protobuf';
import { ExpirableMessage, ExpirableMessageParams } from '../ExpirableMessage';
import { DataMessage } from '../DataMessage';
import { ExpirableMessageParams } from '../ExpirableMessage';
interface GroupInvitationMessageParams extends ExpirableMessageParams {
url: string;
name: string;
}
export class GroupInvitationMessage extends ExpirableMessage {
export class GroupInvitationMessage extends DataMessage {
private readonly url: string;
private readonly name: string;
@ -28,7 +29,6 @@ export class GroupInvitationMessage extends ExpirableMessage {
});
return new SignalService.DataMessage({
...super.dataProto(),
openGroupInvitation,
});
}

@ -3,7 +3,8 @@ import { isEmpty } from 'lodash';
import { SignalService } from '../../../../protobuf';
import { LokiProfile } from '../../../../types/Message';
import { Reaction } from '../../../../types/Reaction';
import { ExpirableMessage, ExpirableMessageParams } from '../ExpirableMessage';
import { DataMessage } from '../DataMessage';
import { ExpirableMessageParams } from '../ExpirableMessage';
interface AttachmentPointerCommon {
contentType?: string;
@ -71,7 +72,7 @@ export interface VisibleMessageParams extends ExpirableMessageParams {
syncTarget?: string; // undefined means it is not a synced message
}
export class VisibleMessage extends ExpirableMessage {
export class VisibleMessage extends DataMessage {
public readonly reaction?: Reaction;
private readonly attachments?: Array<AttachmentPointerWithUrl>;
@ -113,7 +114,7 @@ export class VisibleMessage extends ExpirableMessage {
}
public dataProto(): SignalService.DataMessage {
const dataMessage = super.dataProto();
const dataMessage = new SignalService.DataMessage({});
if (this.body) {
dataMessage.body = this.body;

Loading…
Cancel
Save