add method

void add()

Adds an edge from the _offlineAdapterKey to the key for save/delete and stores header/param metadata. Also stores callbacks.

Implementation

void add() {
  // DO NOT proceed if operation is in queue
  if (!adapter.offlineOperations.contains(this)) {
    final node = json.encode(toJson());
    final metadata = metadataFor(label);

    adapter.log(label, 'offline/add $metadata');
    adapter.graph._addEdge(_offlineAdapterKey, node, metadata: metadata);

    // keep callbacks in memory
    adapter.ref.read(_offlineCallbackProvider)[metadata] ??= [];
    adapter.ref
        .read(_offlineCallbackProvider)[metadata]!
        .add([onSuccess, onError]);
  } else {
    // trick
    adapter.graph
        ._notify([_offlineAdapterKey, ''], type: DataGraphEventType.addEdge);
  }
}