completeRequest method

bool completeRequest(
  1. int requestId,
  2. TransactionResult result
)

Completes the pending request with the given requestId. Returns true if the request was found and completed, false if no pending request matched (e.g. requestId=0 from a protocol-level server error).

Implementation

bool completeRequest(int requestId, TransactionResult result) {
  final pending = _pendingRequests.remove(requestId);
  if (pending == null) {
    return false;
  }

  pending.dispose();
  if (pending.uuidRequestId != null) {
    _requestIdByUuid.remove(pending.uuidRequestId);
  }

  if (result.isSuccess) {
    pending.completer.complete(result);
  } else {
    pending.completer.completeError(
      SpacetimeDbReducerException(
        reducerName: pending.reducerName,
        message: result.errorMessage ?? 'Unknown error',
        result: result,
      ),
    );
  }
  return true;
}