beginTransaction method

  1. @override
Future<ArangoDbRepositoryTransaction> beginTransaction(
  1. RepositoryTransactionOptions options
)

Implementation

@override
Future<ArangoDbRepositoryTransaction> beginTransaction(
  RepositoryTransactionOptions options,
) async {
  final readCollections =
      _repositoryCollectionNames(options.readRepositories);
  final writeCollections =
      _repositoryCollectionNames(options.writeRepositories);
  final exclusiveCollections =
      _repositoryCollectionNames(options.exclusiveRepositories);

  final trxOptions = TransactionOptions(
    readCollections: readCollections,
    writeCollections: writeCollections,
    exclusiveCollections: exclusiveCollections,
    waitForSync: true,
  );
  try {
    final transaction = await db.beginTransaction(trxOptions);
    final repoTrx = ArangoDbRepositoryTransaction(transaction);
    return repoTrx;
  } on DbError catch (error) {
    throw error.toDbException();
  }
}