getAndUpdate method
Future<DatabaseData?>
getAndUpdate(
- String key,
- QueryParams queryParams,
- DateTime lastUsedAt
override
Get and udpate data in storage
The retrieved data is associated to both the key
and queryParams
. The
data should also be updated with the provided lastUsedAt
datetime.
Implementation
@override
Future<DatabaseData?> getAndUpdate(
String key,
QueryParams queryParams,
DateTime lastUsedAt,
) async {
DatabaseData? dbData;
final db = await _getDb();
await db.transaction((txn) async {
final maps = await _queryByKeyAndParams(txn, key, queryParams);
if (maps.isNotEmpty) {
dbData = DatabaseData.fromJson(maps.first);
final newDbData = dbData!.copyWith(
lastUsedAt: lastUsedAt,
useCount: dbData!.useCount + 1,
);
await _updateData(txn, newDbData);
}
});
return dbData;
}