Message schema 6: Change classification of media and documents

For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
This commit is contained in:
Daniel Gasienica 2018-05-07 15:50:39 -04:00
parent f4a5bc9907
commit 16bc1d34c6
4 changed files with 120 additions and 15 deletions

View file

@ -1,8 +1,14 @@
import { partition } from 'lodash';
import * as Attachment from '../Attachment';
import * as IndexedDB from '../IndexedDB';
import { Message } from '../Message';
import { Message, UserMessage } from '../Message';
const hasAttachment = (
predicate: (value: Attachment.Attachment) => boolean
) => (message: UserMessage): IndexedDB.IndexablePresence =>
IndexedDB.toIndexablePresence(message.attachments.some(predicate));
const hasFileAttachment = hasAttachment(Attachment.isFile);
const hasVisualMediaAttachment = hasAttachment(Attachment.isVisualMedia);
export const initializeAttachmentMetadata = async (
message: Message
@ -14,17 +20,14 @@ export const initializeAttachmentMetadata = async (
const hasAttachments = IndexedDB.toIndexableBoolean(
message.attachments.length > 0
);
const [hasVisualMediaAttachments, hasFileAttachments] = partition(
message.attachments,
Attachment.isVisualMedia
)
.map(attachments => attachments.length > 0)
.map(IndexedDB.toIndexablePresence);
const hasFileAttachments = hasFileAttachment(message);
const hasVisualMediaAttachments = hasVisualMediaAttachment(message);
return {
...message,
hasAttachments,
hasVisualMediaAttachments,
hasFileAttachments,
hasVisualMediaAttachments,
};
};