Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
getStreamTransaction
  • Loading branch information
michele committed Aug 7, 2019
commit 939758c2794d65410015ab9316c09f53f9ed7abf
10 changes: 10 additions & 0 deletions src/main/java/com/arangodb/ArangoDatabase.java
Original file line number Diff line number Diff line change
Expand Up @@ -605,6 +605,16 @@ GraphEntity createGraph(String name, Collection<EdgeDefinition> edgeDefinitions,
*/
StreamTransactionEntity abortStreamTransaction(String id) throws ArangoDBException;

/**
* Gets information about a Stream Transaction.
*
* @see <a href="https://docs.arangodb.com/current/HTTP/transaction-stream-transaction.html#get-transaction-status">
* API Documentation</a>
* @return information about the transaction
* @throws ArangoDBException
*/
StreamTransactionEntity getStreamTransaction(String id) throws ArangoDBException;

/**
* Retrieves information about the current database
*
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,11 @@ public StreamTransactionEntity abortStreamTransaction(String id) throws ArangoDB
return executor.execute(abortStreamTransactionRequest(id), streamTransactionResponseDeserializer());
}

@Override
public StreamTransactionEntity getStreamTransaction(String id) throws ArangoDBException {
return executor.execute(getStreamTransactionRequest(id), streamTransactionResponseDeserializer());
}

@Override
public DatabaseEntity getInfo() throws ArangoDBException {
return executor.execute(getInfoRequest(), getInfoResponseDeserializer());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,10 @@ protected Request abortStreamTransactionRequest(String id) {
return request(name, RequestType.DELETE, PATH_API_TRANSACTION, id);
}

protected Request getStreamTransactionRequest(String id) {
return request(name, RequestType.GET, PATH_API_TRANSACTION, id);
}

protected ResponseDeserializer<StreamTransactionEntity> streamTransactionResponseDeserializer() {
return new ResponseDeserializer<StreamTransactionEntity>() {
@Override
Expand Down
20 changes: 20 additions & 0 deletions src/test/java/com/arangodb/ArangoDatabaseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -1399,6 +1399,7 @@ public void beginStreamTransaction() {
StreamTransactionEntity tx = db.beginStreamTransaction(null);
assertThat(tx.getId(), is(notNullValue()));
assertThat(tx.getStatus(), is(StreamTransactionEntity.StreamTransactionStatus.running));
db.abortStreamTransaction(tx.getId());
}

@Test(expected = ArangoDBException.class)
Expand All @@ -1425,6 +1426,25 @@ public void abortStreamTransactionWithInvalidTransactionIdShouldThrow() {
db.abortStreamTransaction("invalidTransactionId");
}

@Test
public void getStreamTransaction() {
StreamTransactionEntity createdTx = db.beginStreamTransaction(null);
StreamTransactionEntity gotTx = db.getStreamTransaction(createdTx.getId());
assertThat(gotTx.getId(), is(notNullValue()));
assertThat(gotTx.getStatus(), is(StreamTransactionEntity.StreamTransactionStatus.running));
db.abortStreamTransaction(createdTx.getId());
}

@Test(expected = ArangoDBException.class)
public void getStreamTransactionWhenTransactionIdDoesNotExistsShouldThrow() {
db.getStreamTransaction("000000");
}

@Test(expected = ArangoDBException.class)
public void getStreamTransactionWithInvalidTransactionIdShouldThrow() {
db.getStreamTransaction("invalidTransactionId");
}

@Test
public void getInfo() {
final DatabaseEntity info = db.getInfo();
Expand Down