update method
Overwrites a resource.
Implementation
@override
Future<Map<String, dynamic>> update(String? id, Map<String, dynamic> data,
[Map<String, dynamic>? params]) {
//if (data is! Map) {
// throw AngelHttpException.badRequest(
// message:
// 'MapService does not support `update` with ${data.runtimeType}.');
//}
if (!items.any(_matchesId(id))) return create(data, params);
return read(id).then((old) {
if (!items.remove(old)) {
throw AngelHttpException.notFound(
message: 'No record found for ID $id');
}
var result = Map<String, dynamic>.from(data);
if (autoIdAndDateFields == true) {
result
..['id'] = id?.toString()
..[autoSnakeCaseNames == false ? 'createdAt' : 'created_at'] =
old[autoSnakeCaseNames == false ? 'createdAt' : 'created_at']
..[autoSnakeCaseNames == false ? 'updatedAt' : 'updated_at'] =
DateTime.now().toIso8601String();
}
items.add(result);
return Future.value(result);
});
}