Page MenuHomePhabricator

D9543.diff
No OneTemporary

D9543.diff

diff --git a/keyserver/src/fetchers/message-fetchers.js b/keyserver/src/fetchers/message-fetchers.js
--- a/keyserver/src/fetchers/message-fetchers.js
+++ b/keyserver/src/fetchers/message-fetchers.js
@@ -246,6 +246,8 @@
const type = mostRecentRowType(rows);
const messageSpec = messageSpecs[type];
+ const requiresDerivedMessages =
+ messageSpec.parseDerivedMessages !== undefined;
if (type === messageTypes.IMAGES || type === messageTypes.MULTIMEDIA) {
let media;
@@ -260,27 +262,44 @@
}
const [row] = rows;
const localID = localIDFromCreationString(viewer, row.creation);
+
+ let rawMessageInfoFromServerDBRowParams = { localID, media };
+ if (requiresDerivedMessages) {
+ rawMessageInfoFromServerDBRowParams = {
+ ...rawMessageInfoFromServerDBRowParams,
+ derivedMessages,
+ };
+ }
+
invariant(
messageSpec.rawMessageInfoFromServerDBRow,
`multimedia message spec should have rawMessageInfoFromServerDBRow`,
);
- return messageSpec.rawMessageInfoFromServerDBRow(row, {
- media,
- derivedMessages,
- localID,
- });
+ return messageSpec.rawMessageInfoFromServerDBRow(
+ row,
+ rawMessageInfoFromServerDBRowParams,
+ );
}
const row = assertSingleRow(rows);
const localID = localIDFromCreationString(viewer, row.creation);
+
+ let rawMessageInfoFromServerDBRowParams = { localID };
+ if (requiresDerivedMessages) {
+ rawMessageInfoFromServerDBRowParams = {
+ ...rawMessageInfoFromServerDBRowParams,
+ derivedMessages,
+ };
+ }
+
invariant(
messageSpec.rawMessageInfoFromServerDBRow,
`message spec ${type} should have rawMessageInfoFromServerDBRow`,
);
- return messageSpec.rawMessageInfoFromServerDBRow(row, {
- derivedMessages,
- localID,
- });
+ return messageSpec.rawMessageInfoFromServerDBRow(
+ row,
+ rawMessageInfoFromServerDBRowParams,
+ );
}
async function fetchMessageInfos(
diff --git a/lib/shared/messages/message-spec.js b/lib/shared/messages/message-spec.js
--- a/lib/shared/messages/message-spec.js
+++ b/lib/shared/messages/message-spec.js
@@ -27,7 +27,7 @@
export type RawMessageInfoFromServerDBRowParams = {
+localID: ?string,
+media?: $ReadOnlyArray<Media>,
- +derivedMessages: $ReadOnlyMap<
+ +derivedMessages?: $ReadOnlyMap<
string,
RawComposableMessageInfo | RawRobotextMessageInfo,
>,
diff --git a/lib/shared/messages/toggle-pin-message-spec.js b/lib/shared/messages/toggle-pin-message-spec.js
--- a/lib/shared/messages/toggle-pin-message-spec.js
+++ b/lib/shared/messages/toggle-pin-message-spec.js
@@ -47,7 +47,10 @@
params: RawMessageInfoFromServerDBRowParams,
): RawTogglePinMessageInfo {
const content = JSON.parse(row.content);
+
const { derivedMessages } = params;
+ invariant(derivedMessages, 'Derived messages should be provided');
+
const targetMessage = derivedMessages.get(content.targetMessageID);
invariant(targetMessage, 'targetMessage should be defined');

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 5, 12:53 PM (5 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2243665
Default Alt Text
D9543.diff (2 KB)

Event Timeline