fire method

Future<HookedServiceEvent<Id, Data, T>> fire(
  1. String eventName,
  2. dynamic result, [
  3. HookedServiceEventListener<Id, Data, T>? callback
])

Fires an after event. This will not be propagated to clients, but will be broadcasted to WebSockets, etc.

Implementation

Future<HookedServiceEvent<Id, Data, T>> fire(String eventName, result,
    [HookedServiceEventListener<Id, Data, T>? callback]) {
  HookedServiceEventDispatcher<Id, Data, T> dispatcher;

  switch (eventName) {
    case HookedServiceEvent.indexed:
      dispatcher = afterIndexed;
      break;
    case HookedServiceEvent.read:
      dispatcher = afterRead;
      break;
    case HookedServiceEvent.created:
      dispatcher = afterCreated;
      break;
    case HookedServiceEvent.modified:
      dispatcher = afterModified;
      break;
    case HookedServiceEvent.updated:
      dispatcher = afterUpdated;
      break;
    case HookedServiceEvent.removed:
      dispatcher = afterRemoved;
      break;
    default:
      throw ArgumentError("Invalid service event name: '$eventName'");
  }

  var ev =
      HookedServiceEvent<Id, Data, T>(true, null, null, inner, eventName);
  return fireEvent(dispatcher, ev, callback);
}