add callmessage typescript class

pull/1939/head
Audric Ackermann 4 years ago
parent c803cdaa8e
commit a538cac491
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -14,6 +14,7 @@ export const DURATION = {
export const TTL_DEFAULT = {
TYPING_MESSAGE: 20 * DURATION.SECONDS,
CALL_MESSAGE: 5 * 60 * DURATION.SECONDS,
TTL_MAX: 14 * DURATION.DAYS,
};

@ -0,0 +1,50 @@
import { SignalService } from '../../../../protobuf';
import { MessageParams } from '../Message';
import { ContentMessage } from '..';
import { signalservice } from '../../../../protobuf/compiled';
import { TTL_DEFAULT } from '../../../constants';
interface CallMessageMessageParams extends MessageParams {
type: SignalService.CallMessage.Type;
sdpMLineIndexes: Array<number>;
sdpMids: Array<string>;
sdps: Array<string>;
referencedAttachmentTimestamp: number;
}
export class CallMessageMessage extends ContentMessage {
public readonly type: signalservice.CallMessage.Type;
public readonly sdpMLineIndexes: Array<number>;
public readonly sdpMids: Array<string>;
public readonly sdps: Array<string>;
constructor(params: CallMessageMessageParams) {
super({ timestamp: params.timestamp, identifier: params.identifier });
this.type = params.type;
this.sdpMLineIndexes = params.sdpMLineIndexes;
this.sdpMids = params.sdpMids;
this.sdps = params.sdps;
// this does not make any sense
if (this.type !== signalservice.CallMessage.Type.END_CALL && this.sdps.length === 0) {
throw new Error('sdps must be set unless this is a END_CALL type message');
}
}
public contentProto(): SignalService.Content {
return new SignalService.Content({
callMessage: this.dataCallProto(),
});
}
public ttl() {
return TTL_DEFAULT.CALL_MESSAGE;
}
private dataCallProto(): SignalService.CallMessage {
return new SignalService.CallMessage({
type: this.type,
sdpMLineIndexes: this.sdpMLineIndexes,
sdpMids: this.sdpMids,
sdps: this.sdps,
});
}
}
Loading…
Cancel
Save