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(), dataMessage: this.dataProto(),
}); });
} }
public abstract dataProto(): SignalService.DataMessage;
} }

@ -38,17 +38,8 @@ export class ExpirableMessage extends ContentMessage {
}); });
} }
public dataProto(): SignalService.DataMessage { // Note: dataProto() or anything else must be implemented in the child classes
return new SignalService.DataMessage({ // public dataProto()
// 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,
});
}
public getDisappearingMessageType(): DisappearingMessageType | undefined { public getDisappearingMessageType(): DisappearingMessageType | undefined {
return this.expirationType || undefined; return this.expirationType || undefined;

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

@ -28,11 +28,11 @@ export class DataExtractionNotificationMessage extends ExpirableMessage {
public contentProto(): SignalService.Content { public contentProto(): SignalService.Content {
const content = super.contentProto(); const content = super.contentProto();
content.dataExtractionNotification = this.dataExtractionProto(); content.dataExtractionNotification = this.extractionProto();
return content; return content;
} }
protected dataExtractionProto(): SignalService.DataExtractionNotification { protected extractionProto(): SignalService.DataExtractionNotification {
const ACTION_ENUM = SignalService.DataExtractionNotification.Type; 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 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 { public dataProto(): SignalService.DataMessage {
const data = super.dataProto(); const data = new SignalService.DataMessage({});
data.flags = SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE; data.flags = SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE;

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

@ -1,7 +1,7 @@
import { GroupPubkeyType } from 'libsession_util_nodejs'; import { GroupPubkeyType } from 'libsession_util_nodejs';
import { SignalService } from '../../../../../protobuf';
import { LibSodiumWrappers } from '../../../../crypto'; import { LibSodiumWrappers } from '../../../../crypto';
import { ExpirableMessage, ExpirableMessageParams } from '../../ExpirableMessage'; import { DataMessage } from '../../DataMessage';
import { ExpirableMessageParams } from '../../ExpirableMessage';
export type AdminSigDetails = { export type AdminSigDetails = {
secretKey: Uint8Array; secretKey: Uint8Array;
@ -12,7 +12,7 @@ export interface GroupUpdateMessageParams extends ExpirableMessageParams {
groupPk: GroupPubkeyType; groupPk: GroupPubkeyType;
} }
export abstract class GroupUpdateMessage extends ExpirableMessage { export abstract class GroupUpdateMessage extends DataMessage {
public readonly destination: GroupUpdateMessageParams['groupPk']; public readonly destination: GroupUpdateMessageParams['groupPk'];
constructor(params: GroupUpdateMessageParams) { 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 isFor1o1Swarm(): boolean;
public abstract isForGroupSwarm(): boolean; public abstract isForGroupSwarm(): boolean;

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

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

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

Loading…
Cancel
Save