diff --git a/src/TransactionService.js b/src/TransactionService.js index cfe1328990d3327f6fb1acb7d9105290817990a3..53e5cd5688e154cdf882557d0d654aa93c1f8c36 100644 --- a/src/TransactionService.js +++ b/src/TransactionService.js @@ -27,13 +27,19 @@ export class TransactionService { this.uri = uri || "/api"; } - _PrepareTransaction(retrieveRequest) { + _PrepareTransaction(retrieveRequests) { + if (!(Array.isArray(retrieveRequests))) { + retrieveRequests = [retrieveRequests]; + } const client = new api.v1.EntityTransactionServiceClient(this.uri, null, null); - var transactionRequest = new api.v1.TransactionRequest(); - transactionRequest.setRetrieveRequest(retrieveRequest); var request = new api.v1.MultiTransactionRequest(); - request.addRequests(transactionRequest); + var transactionRequest; + for (let retrieveRequest of retrieveRequests) { + transactionRequest = new api.v1.TransactionRequest(); + transactionRequest.setRetrieveRequest(retrieveRequest); + request.addRequests(transactionRequest); + } const headers = {}; return (res_cb, err_cb) => { @@ -66,9 +72,12 @@ export class TransactionService { return query_request; } - async retrieve(id) { - const retrieveRequest = this._CreateRetrieveRequest(id); - return new Promise(this._PrepareTransaction(retrieveRequest)); + async retrieve(ids) { + if (!(Array.isArray(ids))) { + ids = [ids] + } + const retrieveRequests = ids.map(id => this._CreateRetrieveRequest(id)); + return new Promise(this._PrepareTransaction(retrieveRequests)); } async executeQuery(query) {