update method
Future<int>
update({
- required Filter<
EntityBase> where(- TMeta t
- TEntity? entity,
- Map<
ColumnDefinition< columnValues(TEntity, dynamic> , dynamic>- TMeta t
- bool? useIsolate,
Implementation
@override
Future<int> update({
required Filter Function(TMeta t) where,
TEntity? entity,
Map<ColumnDefinition<TEntity, dynamic>, dynamic> Function(TMeta t)?
columnValues,
bool? useIsolate,
}) async {
final query = where(t)
.filters
.where((element) => element.column?.name == 'id')
.toList();
if (query.isNotEmpty == true) {
var createdAt = entity?.createdAt;
if (entity == null) {
final res =
await firstWhereOrNullMap(where, columns: (t) => [t.createdAt]);
if (res != null && res.containsKey(t.createdAt.name)) {
createdAt = res[t.createdAt.name] as DateTime?;
}
}
entity = (entity ?? mType).updateDates(createdAt: createdAt) as TEntity;
final update = columnValues != null
? (entity as Entity).toStorageJson(columnValues: columnValues(t))
: entity.toMap();
await write(key: query[0].value as String, value: update);
return 1;
}
return 0;
}