promisify Node.getStatus()
This commit is contained in:
parent
2a17f8076a
commit
7c3231ac3c
@ -7,7 +7,10 @@ NodeStatus.setNode = function(aNode) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
NodeStatus.getStatus = function(req, res) {
|
NodeStatus.getStatus = function(req, res) {
|
||||||
res.send(node.status);
|
node.getStatus()
|
||||||
|
.then(function(status) {
|
||||||
|
res.send(status);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = NodeStatus;
|
module.exports = NodeStatus;
|
||||||
|
|||||||
@ -1,10 +1,14 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var Promise = require('bluebird');
|
||||||
|
|
||||||
var bitcore = require('bitcore');
|
var bitcore = require('bitcore');
|
||||||
var _ = bitcore.deps._;
|
var _ = bitcore.deps._;
|
||||||
var $ = bitcore.util.preconditions;
|
var $ = bitcore.util.preconditions;
|
||||||
var Transaction = bitcore.Transaction;
|
var Transaction = bitcore.Transaction;
|
||||||
|
|
||||||
|
var BitcoreNode = require('../../');
|
||||||
|
|
||||||
var Transactions = {};
|
var Transactions = {};
|
||||||
|
|
||||||
var node;
|
var node;
|
||||||
@ -23,13 +27,12 @@ Transactions.setNode = function(aNode) {
|
|||||||
Transactions.txHashParam = function(req, res, next, txHash) {
|
Transactions.txHashParam = function(req, res, next, txHash) {
|
||||||
node.getTransaction(txHash)
|
node.getTransaction(txHash)
|
||||||
.then(function(tx) {
|
.then(function(tx) {
|
||||||
if (_.isUndefined(tx)) {
|
|
||||||
res.status(404).send('Transaction with id ' + txHash + ' not found');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
req.tx = tx;
|
req.tx = tx;
|
||||||
})
|
})
|
||||||
.then(next);
|
.then(next)
|
||||||
|
.catch(BitcoreNode.errors.Transactions.NotFound, function() {
|
||||||
|
res.status(404).send('Transaction with id ' + txHash + ' not found');
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -66,8 +69,8 @@ Transactions.send = function(req, res) {
|
|||||||
.then(function() {
|
.then(function() {
|
||||||
res.send('Transaction broadcasted successfully');
|
res.send('Transaction broadcasted successfully');
|
||||||
})
|
})
|
||||||
.catch(function(err) {
|
.catch(BitcoreNode.errors.Transactions.CantBroadcast, function(err) {
|
||||||
res.status(422).send(err);
|
res.status(422).send(err.message);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var config = require('config');
|
|
||||||
var BitcoreHTTP = require('./lib/http');
|
var BitcoreHTTP = require('./lib/http');
|
||||||
|
|
||||||
var http = BitcoreHTTP.create(config.get('BitcoreHTTP'));
|
if (require.main === module) {
|
||||||
http.start();
|
var config = require('config');
|
||||||
|
var http = BitcoreHTTP.create(config.get('BitcoreHTTP'));
|
||||||
|
http.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = BitcoreHTTP;
|
||||||
|
|||||||
@ -5,6 +5,8 @@ var should = chai.should();
|
|||||||
var request = require('supertest');
|
var request = require('supertest');
|
||||||
|
|
||||||
var EventEmitter = require('eventemitter2').EventEmitter2;
|
var EventEmitter = require('eventemitter2').EventEmitter2;
|
||||||
|
var Promise = require('bluebird');
|
||||||
|
Promise.longStackTraces();
|
||||||
|
|
||||||
var BitcoreHTTP = require('../../lib/http');
|
var BitcoreHTTP = require('../../lib/http');
|
||||||
|
|
||||||
@ -19,6 +21,9 @@ describe('BitcoreHTTP v1 node routes', function() {
|
|||||||
peer_count: 8,
|
peer_count: 8,
|
||||||
version: 'test'
|
version: 'test'
|
||||||
};
|
};
|
||||||
|
nodeMock.getStatus = function() {
|
||||||
|
return Promise.resolve(nodeMock.status);
|
||||||
|
};
|
||||||
app = new BitcoreHTTP(nodeMock).app;
|
app = new BitcoreHTTP(nodeMock).app;
|
||||||
agent = request(app);
|
agent = request(app);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -5,12 +5,14 @@ var should = chai.should();
|
|||||||
var request = require('supertest');
|
var request = require('supertest');
|
||||||
|
|
||||||
var bitcore = require('bitcore');
|
var bitcore = require('bitcore');
|
||||||
|
var _ = bitcore.deps._;
|
||||||
var Transaction = bitcore.Transaction;
|
var Transaction = bitcore.Transaction;
|
||||||
var EventEmitter = require('eventemitter2').EventEmitter2;
|
var EventEmitter = require('eventemitter2').EventEmitter2;
|
||||||
var Promise = require('bluebird');
|
var Promise = require('bluebird');
|
||||||
Promise.longStackTraces();
|
Promise.longStackTraces();
|
||||||
|
|
||||||
var BitcoreHTTP = require('../../lib/http');
|
var BitcoreHTTP = require('../../lib/http');
|
||||||
|
var BitcoreNode = require('../../../');
|
||||||
var mockTransactions = require('../data/transactions');
|
var mockTransactions = require('../data/transactions');
|
||||||
|
|
||||||
describe('BitcoreHTTP v1 transactions routes', function() {
|
describe('BitcoreHTTP v1 transactions routes', function() {
|
||||||
@ -22,11 +24,15 @@ describe('BitcoreHTTP v1 transactions routes', function() {
|
|||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
nodeMock = new EventEmitter();
|
nodeMock = new EventEmitter();
|
||||||
nodeMock.getTransaction = function(txHash) {
|
nodeMock.getTransaction = function(txHash) {
|
||||||
return Promise.resolve(mockTransactions[txHash]);
|
var tx = mockTransactions[txHash];
|
||||||
|
if (_.isUndefined(tx)) {
|
||||||
|
return Promise.reject(new BitcoreNode.errors.Transactions.NotFound(txHash));
|
||||||
|
}
|
||||||
|
return Promise.resolve(tx);
|
||||||
};
|
};
|
||||||
nodeMock.broadcast = function(tx) {
|
nodeMock.broadcast = function(tx) {
|
||||||
if (mockTransactions[tx.id]) {
|
if (mockTransactions[tx.id]) {
|
||||||
return Promise.reject('some error');
|
return Promise.reject(new BitcoreNode.errors.Transactions.CantBroadcast(tx.id));
|
||||||
}
|
}
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
};
|
};
|
||||||
@ -99,7 +105,7 @@ describe('BitcoreHTTP v1 transactions routes', function() {
|
|||||||
raw: t1.uncheckedSerialize()
|
raw: t1.uncheckedSerialize()
|
||||||
})
|
})
|
||||||
.expect(422)
|
.expect(422)
|
||||||
.expect('some error', cb);
|
.expect('Unable to broadcast transaction 8c14f0db3df150123e6f3dbbf30f8b955a8249b62ac1d1ff16284aefa3d06d87', cb);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
7
index.js
7
index.js
@ -1,10 +1,10 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var config = require('config');
|
|
||||||
|
|
||||||
var BitcoreNode = require('./lib/node.js');
|
var BitcoreNode = require('./lib/node');
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
|
var config = require('config');
|
||||||
var node = BitcoreNode.create(config.get('BitcoreNode'));
|
var node = BitcoreNode.create(config.get('BitcoreNode'));
|
||||||
node.start();
|
node.start();
|
||||||
node.on('error', function(err) {
|
node.on('error', function(err) {
|
||||||
@ -16,4 +16,7 @@ if (require.main === module) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BitcoreNode.errors = require('./lib/errors');
|
||||||
|
|
||||||
module.exports = BitcoreNode;
|
module.exports = BitcoreNode;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user