Skip to content

Commit b2136cf

Browse files
committed
[routes/api] Add endpoints for network data
The endpoints '/networks' and '/networks/:network' while provide data from the relevant data files. issue: #8
1 parent 7b7a990 commit b2136cf

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

routes/api.js

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,51 @@
1+
// built-in modules
2+
var path = require("path");
3+
4+
15
// npm-installed modules
26
var Debug = require("debug");
37
var express = require("express");
48

59

10+
// own modules
11+
var engine = require("../engine");
12+
13+
614
// module variables
715
var debug = Debug("mmtc-ke:routes:api");
816
var router = express.Router();
17+
var logger = engine.clients.getLogger();
18+
19+
20+
// serving data for all networks
21+
router.get("/networks", function(req, res, next) {
22+
return res.json({
23+
networks: engine.networks.getNetworks(),
24+
});
25+
});
26+
27+
28+
// serving data for a network
29+
router.get("/networks/:network", function(req, res, next) {
30+
var network = engine.networks.getNetwork(req.params.network);
31+
if (!network) {
32+
var networkNotFoundError = new engine.errors.NetworkNotFoundError(`network '${req.params.network}' not found`);
33+
networkNotFoundError.status_code = 404;
34+
return next(networkNotFoundError);
35+
}
36+
return res.json(network);
37+
});
938

1039

11-
// just say hello
12-
router.use("/", function(req, res) {
13-
return res.json({ message: "Hello, World!" });
40+
// API Error handler
41+
router.use(function(err, req, res, next) {
42+
var status_code = err.status_code || 500;
43+
if (status_code === 500) {
44+
logger.error(err);
45+
}
46+
return res.status(status_code).json({
47+
error: err,
48+
});
1449
});
1550

1651

0 commit comments

Comments
 (0)