fromJson static method

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

Implementation

static Message? fromJson(Map<String, dynamic>? json) {
  if (json == null) {
    return null;
  }

  return Message(
    id: (json['id'] as int?) ?? 0,
    senderId: MessageSender.fromJson(tdMapFromJson(json['sender_id'])),
    receiverId: MessageSender.fromJson(tdMapFromJson(json['receiver_id'])),
    chatId: (json['chat_id'] as int?) ?? 0,
    sendingState: MessageSendingState.fromJson(
      tdMapFromJson(json['sending_state']),
    ),
    schedulingState: MessageSchedulingState.fromJson(
      tdMapFromJson(json['scheduling_state']),
    ),
    isOutgoing: (json['is_outgoing'] as bool?) ?? false,
    isPinned: (json['is_pinned'] as bool?) ?? false,
    isFromOffline: (json['is_from_offline'] as bool?) ?? false,
    canBeSaved: (json['can_be_saved'] as bool?) ?? false,
    hasTimestampedMedia: (json['has_timestamped_media'] as bool?) ?? false,
    isChannelPost: (json['is_channel_post'] as bool?) ?? false,
    isPaidStarSuggestedPost:
        (json['is_paid_star_suggested_post'] as bool?) ?? false,
    isPaidGramSuggestedPost:
        (json['is_paid_gram_suggested_post'] as bool?) ?? false,
    containsUnreadMention:
        (json['contains_unread_mention'] as bool?) ?? false,
    containsUnreadPollVotes:
        (json['contains_unread_poll_votes'] as bool?) ?? false,
    date: (json['date'] as int?) ?? 0,
    editDate: (json['edit_date'] as int?) ?? 0,
    forwardInfo: MessageForwardInfo.fromJson(
      tdMapFromJson(json['forward_info']),
    ),
    importInfo: MessageImportInfo.fromJson(
      tdMapFromJson(json['import_info']),
    ),
    interactionInfo: MessageInteractionInfo.fromJson(
      tdMapFromJson(json['interaction_info']),
    ),
    unreadReactions: List<UnreadReaction>.from(
      tdListFromJson(json['unread_reactions'])
          .map((item) => UnreadReaction.fromJson(tdMapFromJson(item)))
          .whereType<UnreadReaction>(),
    ),
    factCheck: FactCheck.fromJson(tdMapFromJson(json['fact_check'])),
    suggestedPostInfo: SuggestedPostInfo.fromJson(
      tdMapFromJson(json['suggested_post_info']),
    ),
    replyTo: MessageReplyTo.fromJson(tdMapFromJson(json['reply_to'])),
    topicId: MessageTopic.fromJson(tdMapFromJson(json['topic_id'])),
    selfDestructType: MessageSelfDestructType.fromJson(
      tdMapFromJson(json['self_destruct_type']),
    ),
    selfDestructIn: ((json['self_destruct_in'] as num?) ?? 0.0).toDouble(),
    autoDeleteIn: ((json['auto_delete_in'] as num?) ?? 0.0).toDouble(),
    viaBotUserId: (json['via_bot_user_id'] as int?) ?? 0,
    guestBotCallerId: MessageSender.fromJson(
      tdMapFromJson(json['guest_bot_caller_id']),
    ),
    senderBusinessBotUserId:
        (json['sender_business_bot_user_id'] as int?) ?? 0,
    senderBoostCount: (json['sender_boost_count'] as int?) ?? 0,
    senderTag: (json['sender_tag'] as String?) ?? '',
    paidMessageStarCount: (json['paid_message_star_count'] as int?) ?? 0,
    authorSignature: (json['author_signature'] as String?),
    mediaAlbumId:
        int.tryParse((json['media_album_id'] as dynamic)?.toString() ?? '') ??
        0,
    effectId:
        int.tryParse((json['effect_id'] as dynamic)?.toString() ?? '') ?? 0,
    restrictionInfo: RestrictionInfo.fromJson(
      tdMapFromJson(json['restriction_info']),
    ),
    summaryLanguageCode: (json['summary_language_code'] as String?) ?? '',
    content: MessageContent.fromJson(tdMapFromJson(json['content'])),
    replyMarkup: ReplyMarkup.fromJson(tdMapFromJson(json['reply_markup'])),
    ephemeralMessageId: (json['ephemeral_message_id'] as int?),
  );
}