update method
Future<int>
update({
- required Filter<
ModelBase> where(- TMeta t
- TModel? model,
- Map<
ColumnDefinition< columnValues(TModel, dynamic> , dynamic>- TMeta t
- bool? useIsolate,
inherited
Implementation
@override
Future<int> update({
required Filter Function(TMeta t) where,
TModel? model,
Map<ColumnDefinition<TModel, dynamic>, dynamic> Function(TMeta t)?
columnValues,
bool? useIsolate,
}) async {
assert(
model != null || columnValues != null,
'model and columnValues cannot be both null',
);
final db = await dbContext.database;
final formattedQuery = await whereString(where, useIsolate: useIsolate);
var createdAt = model?.createdAt;
if (model == null) {
final res = await firstWhereOrNullMap(
where,
select: (t) => [t.createdAt],
);
if (res != null && res.containsKey(t.createdAt.name)) {
createdAt = DateTime.parse(res[t.createdAt.name] as String);
}
}
model = (model ?? mType).updateDates(createdAt: createdAt) as TModel;
final update = columnValues != null
? (model as Model).toStorageJson(columnValues: columnValues(t))
: model.toDb();
return db.update(
t.tableName,
update,
where: formattedQuery.filter,
whereArgs: formattedQuery.whereArgs,
);
}