Add Message descriptor functions

This commit is contained in:
Daniel Gasienica
2018-02-14 16:18:21 -05:00
parent 8febf125b1
commit b3db0bf179
2 changed files with 123 additions and 2 deletions

View File

@@ -1,11 +1,37 @@
const Attachment = require('./attachment');
exports.GROUP = 'group';
exports.PRIVATE = 'private';
const GROUP = 'group';
const PRIVATE = 'private';
// Public API
exports.GROUP = GROUP;
exports.PRIVATE = PRIVATE;
// Schema
// Message -> Promise Message
exports.upgradeSchema = async message =>
Object.assign({}, message, {
attachments:
await Promise.all(message.attachments.map(Attachment.upgradeSchema)),
});
// Descriptors
exports.getGroupDescriptor = group => ({
type: GROUP,
id: group.id,
});
// Matches data from `libtextsecure` `MessageReceiver::handleSentMessage`:
exports.getDescriptorForSent = ({ message, destination }) => (
message.group
? exports.getGroupDescriptor(message.group)
: { type: PRIVATE, id: destination }
);
// Matches data from `libtextsecure` `MessageReceiver::handleDataMessage`:
exports.getDescriptorForReceived = ({ message, source }) => (
message.group
? exports.getGroupDescriptor(message.group)
: { type: PRIVATE, id: source }
);