Disambiguate between types of receipts when stored in the same map

This commit is contained in:
trevor-signal 2023-11-20 16:25:49 -05:00 committed by GitHub
parent be5ac3a1e0
commit 3c12a0aad0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 1 deletions

View file

@ -1,16 +1,24 @@
// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { MessageReceiptType } from './MessageReceipts';
// This function is necessary because the only thing we can guarantee will be unique is
// three pieces of data: sender, deviceId, and timestamp.
// Because we don't care which device interacted with our message, we collapse this down
// to: sender + timestamp.
// In some cases, modifiers are stored in the same map, so we also add the modifier type
type ModifierType = MessageReceiptType | 'readsync' | 'viewsync';
export function generateCacheKey({
sender,
timestamp,
type,
}: {
sender: string;
timestamp: number;
type: ModifierType;
}): string {
return `cacheKey-${sender}-${timestamp}`;
return `cacheKey-${sender}-${timestamp}-${type}`;
}