addChat static method

dynamic addChat(
  1. PersonChat chatData, {
  2. dynamic lastestData,
})

Implementation

static addChat(PersonChat chatData, {lastestData}) async {
  if (allChat.where((element) => DateTime.parse(element['date'].toString().split(' ').first).difference(DateTime.parse(DateFormat('yyyy-MM-dd').format(chatData.date))).inDays == 0 && element['isLabel'] == 'true').isEmpty) {
    final person = PersonChat(
      chatType: chatData.chatType,
      type: chatData.type,
      message: chatData.message,
      date: chatData.date,
      isLabel: true,
      person: chatData.person,
      listId: chatData.listId,
      timezone: chatData.timezone,
      id: chatData.id,
    );
    chat.add(person);
    person.message = person.message.replaceAll("'", '{|||}').replaceAll('"', '{|-|}');
    await ChatDatabase.insert(data: person, lastestData: lastestData ?? DateTime.now());
  } else {
    chat.add(chatData);
    try {
      await ChatDatabase.insert(data: chatData, lastestData: lastestData);
    } catch (_) {
      chatData.id = (chatData.id ?? 0) + 1;
      await ChatDatabase.insert(data: chatData, lastestData: lastestData);
    }
  }

  chat.sort((a, b) => a.date.compareTo(b.date));
}