Browse Source

Added requestObjectBatch to client.js.

Added data param to makeRequest & createPromiseResultBatch methods in util.js.
get-transaction-merkle
Corey Phillips 4 years ago
parent
commit
36d7a389a6
No known key found for this signature in database GPG Key ID: 80C0975F55D3A07B
  1. 29
      lib/client.js
  2. 6
      lib/util.js

29
lib/client.js

@ -48,21 +48,48 @@ class Client {
});
}
requestObjectBatch(method, params, secondParam) {
return new Promise((resolve, reject) => {
let arguments_far_calls = {};
let contents = [];
const { key, data } = params;
for (let item of data) {
const id = ++this.id;
let param = "";
if (key in item) param = item[key];
if (secondParam !== undefined) {
contents.push(util.makeRequest(method, [param, secondParam], id));
} else {
contents.push(util.makeRequest(method, [param], id));
}
arguments_far_calls[id] = { param, data: item };
}
const content = '[' + contents.join(',') + ']';
this.callback_message_queue[this.id] = util.createPromiseResultBatch(resolve, reject, arguments_far_calls);
// callback will exist only for max id
this.conn.write(content + '\n');
});
}
requestBatch(method, params, secondParam) {
if (!this.status) {
return Promise.reject(new Error('Connection to server lost, please retry'));
}
if (typeof params === "object" && "key" in params && "data" in params) {
return this.requestObjectBatch(method, params, secondParam)
}
return new Promise((resolve, reject) => {
let arguments_far_calls = {};
let contents = [];
for (let param of params) {
const id = ++this.id;
let data = {};
if (secondParam !== undefined) {
contents.push(util.makeRequest(method, [param, secondParam], id));
} else {
contents.push(util.makeRequest(method, [param], id));
}
arguments_far_calls[id] = param;
arguments_far_calls[id] = { param, data };
}
const content = '[' + contents.join(',') + ']';
this.callback_message_queue[this.id] = util.createPromiseResultBatch(resolve, reject, arguments_far_calls);

6
lib/util.js

@ -1,11 +1,12 @@
'use strict'
const makeRequest = exports.makeRequest = (method, params, id) => {
const makeRequest = exports.makeRequest = (method, params, id, data = {}) => {
return JSON.stringify({
jsonrpc : "2.0",
method : method,
params : params,
id : id,
data
})
}
@ -42,7 +43,8 @@ const createPromiseResultBatch = (exports.createPromiseResultBatch = (resolve, r
if (result && result[0] && result[0].id) {
// this is a batch request response
for (let r of result) {
r.param = argz[r.id];
r["param"] = argz[r.id].param;
r["data"] = argz[r.id].data;
}
}
if (err) reject(err);

Loading…
Cancel
Save