onDocumentEvent method

Future<Response> onDocumentEvent(
  1. Request request,
  2. $AACloudDocumentEventHandler handler
)

Implementation

Future<Response> onDocumentEvent(
  Request request,
  $AACloudDocumentEventHandler handler,
) async {
  DocumentEventData data = await readDocumentEvent(request);
  String documentPath = data.documentPath;
  List<String> seg = documentPath.split("/");
  Map<String, String> ids = {};

  for (int i = 0; i < seg.length; i += 2) {
    if (i % 2 == 0 && i + 1 < seg.length) {
      ids[seg[i]] = seg[i + 1];
    }
  }

  return handler(
    ArcaneDocumentEvent(
      ids: ids,
      documentPath: documentPath,
      before: data.hasOldValue() ? data.oldValue.asMap : null,
      after: data.hasValue() ? data.value.asMap : null,
      request: request,
      rawEventData: data,
    ),
  );
}