modify method
Modifies a resource.
Implementation
@override
Future<Map<String, dynamic>> modify(String id, data,
[Map<String, dynamic>? params]) async {
Map<String, dynamic> target;
try {
target = await read(id, params);
} on AngelHttpException catch (e) {
if (e.statusCode == 404) {
return await create(data, params);
} else {
rethrow;
}
}
var result = mergeMap([target, _removeSensitive(data)]);
//result['updatedAt'] = new DateTime.now().toIso8601String();
try {
var modified = await (collection.findAndModify(
query: where.id(_makeId(id)),
update: result,
returnNew: true) as FutureOr<Map<String, dynamic>>);
result = _jsonify(modified, params);
result['id'] = _makeId(id).toHexString();
return result;
} catch (e, st) {
//printDebug(e, st, 'MODIFY');
throw AngelHttpException(stackTrace: st);
}
}