removeStale method

  1. @override
Future<List<DatabaseData>> removeStale(
  1. DateTime staleDateTime
)
override

Remove data from storage where its last used datetime is before staleDateTime.

Implementation

@override
Future<List<DatabaseData>> removeStale(DateTime staleDateTime) async {
  final removedData = <DatabaseData>[];
  final db = await _getDb();
  final maps = await db.query(
    _cacheTable,
    where: '$_lastUsedAt <= ?',
    whereArgs: [staleDateTime.millisecondsSinceEpoch],
  );

  for (final map in maps) {
    final dbData = DatabaseData.fromJson(map);
    removedData.add(dbData);
    await remove(dbData.key, dbData.queryParams);
  }

  return removedData;
}