yieldAllWaitingMessages method

Future<List<WaitingMessage>> yieldAllWaitingMessages()

Implementation

Future<List<WaitingMessage>> yieldAllWaitingMessages() async {
  final List<Map<String, dynamic>> maps = await _database.query(
    tableName,
    where: '$columnResolved = ? AND $columnFailed = ?',
    whereArgs: [0, 0],
  );

  // Delete the yielded messages
  await _database.delete(
    tableName,
    where: '$columnResolved = ? AND $columnFailed = ?',
    whereArgs: [0, 0],
  );

  return List.generate(maps.length, (i) {
    final message = WaitingMessage(
      maps[i][columnChannel],
      maps[i][columnEvent],
      Map<String, dynamic>.from(maps[i][columnPayload]),
    );
    message.id = maps[i][columnId];
    message.timestamp = maps[i][columnTimestamp];
    message.setFinalPayload(maps[i][columnFinalPayload]);
    return message;
  });
}