ChatRoomMessage.from constructor

ChatRoomMessage.from(
  1. Map<String, dynamic> data
)

Implementation

ChatRoomMessage.from(Map<String, dynamic> data) {
  oId = data['oId'] ?? '';
  userOId = data['userOId'] ?? 0;
  userName = data['userName'] ?? '';
  nickname = data['userNickname'] ?? '';
  avatarURL = data['userAvatarURL'] ?? '';
  sysMetal = toMetal(data['sysMetal'] ?? '{"list":[]}');
  via = ChatSource.from(data['client']);
  content = data['content'] ?? '';
  md = data['md'] ?? data['content'] ?? '';
  try {
    dynamic contentData = _decodeSpecialContent(data['content'] ?? '');
    if (contentData is Map) {
      type = _messageTypeFrom(contentData);
      if (type == ChatRoomMessageType.redPacket) {
        redpacket = RedPacketMessage.from(contentData);
      } else if (type == ChatRoomMessageType.weather) {
        weather = WeatherMsg.from(contentData);
      } else if (type == ChatRoomMessageType.music) {
        music = MusicMsg.from(contentData);
      } else {
        unknown = contentData;
      }
    }
    // ignore: empty_catches
  } catch (e) {}
  time = data['time'] ?? '';
}