insertWaitingMessages method

Future<void> insertWaitingMessages(
  1. List<WaitingMessage> messages, {
  2. String? password,
})

Insert a list of waiting messages into the database Each message's payload and final payload are encrypted before storage

Implementation

Future<void> insertWaitingMessages(List<WaitingMessage> messages,
    {String? password}) async {
  final key = password ?? _defaultPassword;
  final batch = _database.batch();

  for (var message in messages) {
    final encryptedFinalPayload = PayloadCipher.encodePayload(
        message.getFinalPayload(),
        nonce: Nonce.fromString("${message.id}_final"),
        chaCha20: ChaCha20(ChaCha20Key.fromString(key)));

    batch.insert(
      tableWaitingMessages,
      {
        'id': message.id,
        'event': message.event,
        'payload': encryptedFinalPayload,
        'channel': message.channel,
        'timestamp': message.timestamp,
      },
      conflictAlgorithm: ConflictAlgorithm.replace,
    );
  }

  await batch.commit(noResult: true);
}