| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /* eslint-disable
- camelcase,
- max-len,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS101: Remove unnecessary use of Array.from
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let MessageFormatter;
- module.exports = (MessageFormatter = {
- formatMessageForClientSide(message) {
- if (message._id != null) {
- message.id = message._id.toString();
- delete message._id;
- }
- const formattedMessage = {
- id: message.id,
- content: message.content,
- timestamp: message.timestamp,
- user_id: message.user_id
- };
- if (message.edited_at != null) {
- formattedMessage.edited_at = message.edited_at;
- }
- return formattedMessage;
- },
- formatMessagesForClientSide(messages) {
- return (Array.from(messages).map((message) => this.formatMessageForClientSide(message)));
- },
-
- groupMessagesByThreads(rooms, messages) {
- let room, thread;
- const rooms_by_id = {};
- for (room of Array.from(rooms)) {
- rooms_by_id[room._id.toString()] = room;
- }
- const threads = {};
- const getThread = function(room) {
- const thread_id = room.thread_id.toString();
- if (threads[thread_id] != null) {
- return threads[thread_id];
- } else {
- const thread = { messages: [] };
- if (room.resolved != null) {
- thread.resolved = true;
- thread.resolved_at = room.resolved.ts;
- thread.resolved_by_user_id = room.resolved.user_id;
- }
- threads[thread_id] = thread;
- return thread;
- }
- };
-
- for (let message of Array.from(messages)) {
- room = rooms_by_id[message.room_id.toString()];
- if (room != null) {
- thread = getThread(room);
- thread.messages.push(MessageFormatter.formatMessageForClientSide(message));
- }
- }
-
- for (let thread_id in threads) {
- thread = threads[thread_id];
- thread.messages.sort((a,b) => a.timestamp - b.timestamp);
- }
-
- return threads;
- }
- });
|