Message.fromJson constructor

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

Implementation

factory Message.fromJson(Map<String, dynamic> json) {
  final replyMessageData = json[_replyMessage];
  final updateData = json[_update];
  final reactionData = json[_reaction];
  return Message(
    id: json['id']?.toString() ?? '',
    message: json['message']?.toString() ?? '',
    createdAt:
        DateTime.tryParse(json['createdAt'].toString()) ?? DateTime.now(),
    sentBy: json['sentBy']?.toString() ?? '',
    replyMessage: replyMessageData is Map<String, dynamic>
        ? ReplyMessage.fromJson(replyMessageData)
        : const ReplyMessage(),
    reaction: reactionData is Map<String, dynamic>
        ? Reaction.fromJson(reactionData)
        : Reaction(reactions: [], reactedUserIds: []),
    messageType: MessageType.tryParse(json['message_type']?.toString()) ??
        MessageType.text,
    voiceMessageDuration: Duration(
      microseconds: int.tryParse(json[_voiceMessageDuration].toString()) ?? 0,
    ),
    status: MessageStatus.tryParse(json['status']?.toString()) ??
        MessageStatus.pending,
    update: updateData is Map<String, dynamic> ? updateData : null,
    updateAt: DateTime.tryParse(json[_updateAt].toString()),
  );
}