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());

    if (adapter._verbose) {
      print(
          '[flutter_data] [${adapter.internalType}] Adding offline operation with metadata: $metadata');
      print('\n\n');
    }

    adapter.graph._addEdge(_offlineAdapterKey, node, metadata: metadata);

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