import { MessageResource } from '../../types' import { MessageCreatedEvent } from '../../types/jolt_events/message_events' import { DenormalizedAttachmentResource } from '../../types/resources/denormalized_attachment_resource' import { deepCamelCaseKeys } from '../deepCamelCaseKeys' export function transformMessageEventDataToMessageResource({ data, currentPersonId, }: { data: MessageCreatedEvent['data']['data'] currentPersonId: number }): MessageResource { return { type: 'Message', id: data.sort_key, text: data.text, html: data.html, createdAt: data.created_at, deletedAt: data.deleted_at, textEditedAt: data.text_edited_at, mine: data.author_id === currentPersonId, attachments: deepCamelCaseKeys(data.attachments) || [], author: { type: 'Person', id: data.author_id, name: data.author_name, avatar: data.author_avatar, }, reactionCounts: [], replyCount: data.reply_count || 0, replyRootId: data.reply_root_id || null, idempotentKey: data.idempotent_key ?? null, messageType: data.message_type, personIdsForSystemEvent: data.system_event_person_ids, systemTextParts: data.system_text_parts ? { names: data.system_text_parts.names, overflowCount: data.system_text_parts.overflow_count, action: data.system_text_parts.action, } : null, systemTextFormat: data.system_text_format, } }