yieldWaitingMessagesByChannel method

Future<List<WaitingMessage>> yieldWaitingMessagesByChannel(
  1. String channel
)

Implementation

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

  // Delete the yielded messages
  await _database.delete(
    tableName,
    where: '$columnChannel = ? AND $columnResolved = ? AND $columnFailed = ?',
    whereArgs: [channel, 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;
  });
}