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

37 lines
1.0 KiB
TypeScript

import { SyncMessage } from './SyncMessage';
import { SignalService } from '../../../../../protobuf';
import { MessageParams } from '../../Message';
import { Constants } from '../../../..';
interface RequestSyncMessageParams extends MessageParams {
requestType: SignalService.SyncMessage.Request.Type;
}
export abstract class RequestSyncMessage extends SyncMessage {
private readonly requestType: SignalService.SyncMessage.Request.Type;
constructor(params: RequestSyncMessageParams) {
super({ timestamp: params.timestamp, identifier: params.identifier });
this.requestType = params.requestType;
}
public ttl(): number {
return Constants.TTL_DEFAULT.REGULAR_MESSAGE;
}
protected contentProto(): SignalService.Content {
return new SignalService.Content({
syncMessage: this.syncProto(),
});
}
protected syncProto(): SignalService.SyncMessage {
const syncMessage = super.syncProto();
syncMessage.request = new SignalService.SyncMessage.Request({
type: this.requestType,
});
return syncMessage;
}
}