64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
var express = require('express');
|
|
var NodeStatus = require('../controllers/node');
|
|
var Blocks = require('../controllers/blocks');
|
|
var Transactions = require('../controllers/transactions');
|
|
|
|
|
|
function initRouter(node) {
|
|
var router = express.Router();
|
|
|
|
[NodeStatus, Blocks, Transactions].forEach(function(controller) {
|
|
controller.setNode(node);
|
|
});
|
|
|
|
function mockResponse(req, res) {
|
|
res.send({
|
|
'message': 'This is a mocked response'
|
|
});
|
|
}
|
|
|
|
// parameter middleware
|
|
router.param('blockHash', Blocks.blockHashParam);
|
|
router.param('height', Blocks.heightParam);
|
|
router.param('txHash', Transactions.txHashParam);
|
|
|
|
// Node routes
|
|
router.get('/node', NodeStatus.getStatus);
|
|
|
|
// Block routes
|
|
router.get('/blocks', mockResponse);
|
|
router.get('/blocks/latest', Blocks.getLatest);
|
|
router.get('/blocks/:blockHash([A-Fa-f0-9]{64})', Blocks.get);
|
|
router.get('/blocks/:height([0-9]+)', Blocks.get);
|
|
|
|
// Transaction routes
|
|
router.get('/transactions', mockResponse);
|
|
router.get('/transactions/:txHash([A-Fa-f0-9]{64})', Transactions.get);
|
|
router.post('/transactions/send', Transactions.send);
|
|
|
|
// Input routes
|
|
router.get('/transactions/:txHash/inputs', mockResponse);
|
|
router.get('/transactions/:txHash/inputs/:index', mockResponse);
|
|
|
|
// Output routes
|
|
router.get('/transactions/:txHash/outputs', mockResponse);
|
|
router.get('/transactions/:txHash/outputs/:index', mockResponse);
|
|
|
|
// Address routes
|
|
router.get('/addresses/:address', mockResponse);
|
|
router.get('/addresses/:address/transactions', mockResponse);
|
|
router.get('/addresses/:address/utxos', mockResponse);
|
|
// TODO: check if this is really restful
|
|
router.get('/addresses/:addresses/utxos', mockResponse);
|
|
|
|
// error routes
|
|
router.get('/blocks/*', Blocks.getBlockError);
|
|
router.get('/transactions/*', Transactions.getTxError);
|
|
|
|
return router;
|
|
}
|
|
|
|
module.exports = initRouter;
|