Use correct timestamp for receipts of edited messages

This commit is contained in:
Fedor Indutny 2023-05-16 10:37:12 -07:00 committed by GitHub
parent 8fe0047822
commit 5869717cd3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 156 additions and 52 deletions

View file

@ -0,0 +1,42 @@
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MessageAttributesType } from '../model-types.d';
import type { LoggerType } from '../types/Logging';
import { assertDev } from './assert';
export type GetMessageSentTimestampOptionsType = Readonly<{
includeEdits?: boolean;
log: LoggerType;
}>;
export function getMessageSentTimestamp(
{
editMessageTimestamp,
sent_at: sentAt,
timestamp,
}: Pick<
MessageAttributesType,
'editMessageTimestamp' | 'sent_at' | 'timestamp'
>,
{ includeEdits = true, log }: GetMessageSentTimestampOptionsType
): number {
if (includeEdits && editMessageTimestamp) {
return editMessageTimestamp;
}
if (sentAt) {
return sentAt;
}
if (timestamp) {
log.error('message lacked sent_at. Falling back to timestamp');
return timestamp;
}
assertDev(
false,
'message lacked sent_at and timestamp. Falling back to current time'
);
return Date.now();
}