forest-express
Version:
Official package for all Forest Express Lianas
32 lines (31 loc) • 988 B
JavaScript
;
var _ = require('lodash');
var JSONAPISerializer = require('jsonapi-serializer').Serializer;
function serializeMessages(messages, collectionName, meta) {
function mapMessage(message) {
// jshint camelcase: false
message.id = message.id.replace('layer:///messages/', '');
message.sentAt = message.sent_at;
message.content = message.parts[0].body;
message.mimeType = message.parts[0].mime_type;
message.sender = message.sender.display_name;
return message;
}
var data = null;
if (_.isArray(messages)) {
data = messages.map(function (message) {
return mapMessage(message);
});
} else {
data = mapMessage(messages);
}
var type = "".concat(collectionName, "_layer_messages");
return new JSONAPISerializer(type, data, {
attributes: ['sender', 'sentAt', 'content', 'mimeType'],
keyForAttribute: function keyForAttribute(key) {
return key;
},
meta: meta
});
}
module.exports = serializeMessages;