add /blocks/latest
This commit is contained in:
parent
125d7b22f8
commit
91984e89a1
@ -17,7 +17,9 @@ Blocks.setNode = function(aNode) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// params
|
/*
|
||||||
|
* params
|
||||||
|
*/
|
||||||
Blocks.blockHashParam = function(req, res, next, blockHash) {
|
Blocks.blockHashParam = function(req, res, next, blockHash) {
|
||||||
// TODO: fetch block from service
|
// TODO: fetch block from service
|
||||||
var block = mockBlocks[blockHash];
|
var block = mockBlocks[blockHash];
|
||||||
@ -43,11 +45,19 @@ Blocks.heightParam = function(req, res, next, height) {
|
|||||||
next();
|
next();
|
||||||
};
|
};
|
||||||
|
|
||||||
Blocks.getBlock = function(req, res) {
|
/*
|
||||||
|
* controllers
|
||||||
|
*/
|
||||||
|
|
||||||
|
Blocks.getLatest = function(req, res) {
|
||||||
|
req.block = mockBlocks[Object.keys(mockBlocks).splice(-1)[0]];
|
||||||
|
Blocks.get(req, res);
|
||||||
|
};
|
||||||
|
|
||||||
|
Blocks.get = function(req, res) {
|
||||||
$.checkState(req.block instanceof Block);
|
$.checkState(req.block instanceof Block);
|
||||||
res.send(req.block.toObject());
|
res.send(req.block.toObject());
|
||||||
};
|
};
|
||||||
|
|
||||||
Blocks.getBlockError = function(req, res) {
|
Blocks.getBlockError = function(req, res) {
|
||||||
res.status(422);
|
res.status(422);
|
||||||
res.send('/v1/blocks/ parameter must be a 64 digit hex or block height integer');
|
res.send('/v1/blocks/ parameter must be a 64 digit hex or block height integer');
|
||||||
|
|||||||
@ -27,9 +27,9 @@ function initRouter(node) {
|
|||||||
|
|
||||||
// Block routes
|
// Block routes
|
||||||
router.get('/blocks', mockResponse);
|
router.get('/blocks', mockResponse);
|
||||||
router.get('/blocks/latest', mockResponse);
|
router.get('/blocks/latest', Blocks.getLatest);
|
||||||
router.get('/blocks/:blockHash([A-Fa-f0-9]{64})', Blocks.getBlock);
|
router.get('/blocks/:blockHash([A-Fa-f0-9]{64})', Blocks.get);
|
||||||
router.get('/blocks/:height([0-9]+)', Blocks.getBlock);
|
router.get('/blocks/:height([0-9]+)', Blocks.get);
|
||||||
router.get('/blocks/*', Blocks.getBlockError);
|
router.get('/blocks/*', Blocks.getBlockError);
|
||||||
router.get('/blocks/:blockHash/transactions/:txIndex', mockResponse);
|
router.get('/blocks/:blockHash/transactions/:txIndex', mockResponse);
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,7 @@ describe('BitcoreHTTP v1 blocks routes', function() {
|
|||||||
|
|
||||||
// mocks
|
// mocks
|
||||||
var b1 = mockBlocks[Object.keys(mockBlocks)[0]];
|
var b1 = mockBlocks[Object.keys(mockBlocks)[0]];
|
||||||
|
var lastBlock = mockBlocks[Object.keys(mockBlocks).splice(-1)[0]];
|
||||||
var nodeMock, app, agent;
|
var nodeMock, app, agent;
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
nodeMock = new EventEmitter();
|
nodeMock = new EventEmitter();
|
||||||
@ -29,6 +30,13 @@ describe('BitcoreHTTP v1 blocks routes', function() {
|
|||||||
}, cb);
|
}, cb);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe('/blocks/latest', function() {
|
||||||
|
it('returns latest block', function(cb) {
|
||||||
|
agent.get('/v1/blocks/latest')
|
||||||
|
.expect(200)
|
||||||
|
.expect(lastBlock.toJSON(), cb);
|
||||||
|
});
|
||||||
|
});
|
||||||
describe('/blocks/:blockHash', function() {
|
describe('/blocks/:blockHash', function() {
|
||||||
it('fails with invalid blockHash', function(cb) {
|
it('fails with invalid blockHash', function(cb) {
|
||||||
agent.get('/v1/blocks/abad1dea')
|
agent.get('/v1/blocks/abad1dea')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user