|
| 1 | +// built-in modules |
| 2 | +var path = require("path"); |
| 3 | + |
| 4 | + |
1 | 5 | // npm-installed modules |
2 | 6 | var Debug = require("debug"); |
3 | 7 | var express = require("express"); |
4 | 8 |
|
5 | 9 |
|
| 10 | +// own modules |
| 11 | +var engine = require("../engine"); |
| 12 | + |
| 13 | + |
6 | 14 | // module variables |
7 | 15 | var debug = Debug("mmtc-ke:routes:api"); |
8 | 16 | 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 | +}); |
9 | 38 |
|
10 | 39 |
|
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 | + }); |
14 | 49 | }); |
15 | 50 |
|
16 | 51 |
|
|
0 commit comments