modify method

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

Modifies a resource.

Implementation

@override
Future<Data> modify(Id id, Data data, [Map<String, dynamic>? params]) {
  var localParams = _stripReq(params);
  return beforeModified
      ._emit(HookedServiceEvent(false, _getRequest(params),
          _getResponse(params), inner, HookedServiceEvent.modified,
          id: id, data: data, params: localParams))
      .then((before) {
    if (before._canceled) {
      return afterModified
          ._emit(HookedServiceEvent(true, _getRequest(params),
              _getResponse(params), inner, HookedServiceEvent.modified,
              id: id,
              data: before.data,
              params: localParams,
              result: before.result))
          .then((after) => after.result as Data);
    }

    return inner.modify(id, before.data as Data, localParams).then((result) {
      return afterModified
          ._emit(HookedServiceEvent(true, _getRequest(params),
              _getResponse(params), inner, HookedServiceEvent.created,
              id: id, data: before.data, params: localParams, result: result))
          .then((after) => after.result as Data);
    });
  });
}