CommsMessage.fromJson constructor

CommsMessage.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory CommsMessage.fromJson(Map<String, dynamic> json) {
  final msgId = json['id'] as int? ?? json['message_id'] as int? ?? 0;
  final msgText = (json['message_content'] ?? json['content'] ?? '').toString();

  return CommsMessage(
    id: msgId,
    groupId: json['group_id'] as int?,
    senderId: json['sender_id'] as int?,
    messageContent: msgText,
    createdAt: json['created_at'] != null
        ? DateTime.tryParse(json['created_at'] as String)
        : null,
    updatedAt: json['updated_at'] != null
        ? DateTime.tryParse(json['updated_at'] as String)
        : null,
    sender: json['sender'] != null
        ? CommsUser.fromJson(json['sender'] as Map<String, dynamic>)
        : null,
    readInfo: (json['read_info'] as List?)
            ?.map((e) => CommsReadInfo.fromJson(e as Map<String, dynamic>))
            .toList() ??
        [],
    deliveryInfo: (json['delivery_info'] as List?)
            ?.map((e) => CommsDeliveryInfo.fromJson(e as Map<String, dynamic>))
            .toList() ??
        [],
    overallStatus: json['overall_status'] as String? ?? 'sent',
    attachments: (json['attachments'] as List?)
            ?.map((e) => CommsAttachment.fromJson(e as Map<String, dynamic>))
            .toList() ??
        [],
    reactions: json['reactions'] as List? ?? [],
    replyTo: json['reply_to'] != null
        ? CommsMessage.fromJson(json['reply_to'] as Map<String, dynamic>)
        : null,
    mentions: json['mentions'] as List? ?? [],
    messageId: json['message_id'] as int?,
    content: json['content'] as String?,
    lastMessage: json['last_message'] != null
        ? CommsMessage.fromJson(json['last_message'] as Map<String, dynamic>)
        : null,
  );
}