modify method

  1. @override
Future<Map<String, dynamic>> modify(
  1. String? id,
  2. Map<String, dynamic> data, [
  3. Map<String, dynamic>? params
])
override

Modifies a resource.

Implementation

@override
Future<Map<String, dynamic>> modify(String? id, Map<String, dynamic> data,
    [Map<String, dynamic>? params]) {
  //if (data is! Map) {
  //  throw AngelHttpException.badRequest(
  //      message:
  //          'MapService does not support `modify` with ${data.runtimeType}.');
  //}
  if (!items.any(_matchesId(id))) return create(data, params);

  return read(id).then((item) {
    var idx = items.indexOf(item);
    if (idx < 0) return create(data, params);
    var result = Map<String, dynamic>.from(item)..addAll(data);

    if (autoIdAndDateFields == true) {
      result[autoSnakeCaseNames == false ? 'updatedAt' : 'updated_at'] =
          DateTime.now().toIso8601String();
    }
    return Future.value(items[idx] = result);
  });
}