diff --git a/lib/apiserver/index.js b/lib/apiserver/index.js index d35e14a..d0a67af 100644 --- a/lib/apiserver/index.js +++ b/lib/apiserver/index.js @@ -18,6 +18,8 @@ const partnerLastSeen = require('../partner-last-seen'); const history = require('../history'); const modems = require('../modems2'); +const routerModems = require('./router-modems'); + const app = express(); messagingService.setTransport(transport); @@ -87,6 +89,7 @@ app.get('/apikey/:apikey/on-sms', onIncomingSms); app.get('/apikey/:apikey/inbox', onIncomingSms); app.get('/apikey/:apikey/on-sms/inbox', onIncomingSms); app.get('/apikey/:apikey/history', pageHistory); +app.use('/modems', routerModems); const listenPort = config && config.handler_callback_server ? config.handler_callback_server.listen_port : null; listenPort && app.listen(listenPort, () => { diff --git a/lib/apiserver/router-modems.js b/lib/apiserver/router-modems.js new file mode 100644 index 0000000..3421f01 --- /dev/null +++ b/lib/apiserver/router-modems.js @@ -0,0 +1,30 @@ +'use strict'; + +const express = require('express'); +const modems = require('../modems2'); + +const router = express.Router(); +module.exports = router; + +function pageIndex(req, res) { + res.json(modems.dump()); +} + +function pageSet(req, res) { + res.end('OK'); + + modems.set({ + name: req.query.modem, + imsi: req.query.modem_imsi, + msisdn: req.query.modem_msisdn, + device: req.query.modem_device, + uptime: req.query.uptime, + reportIp: req.query.report_ip || req.ip, + reportPort: req.query.report_port, + reportApikey: req.query.report_apikey, + reportPathSms: req.query.report_path_sms || '/sms', + }); +} + +router.get('/', pageIndex); +router.get('/set', pageSet); \ No newline at end of file diff --git a/lib/modems2.js b/lib/modems2.js index 42bab84..172bb50 100644 --- a/lib/modems2.js +++ b/lib/modems2.js @@ -91,6 +91,11 @@ function get(selector, keyword) { return modemList[`by_${selector}`] ? modemList[`by_${selector}`][keyword] : null; } +function dump() { + return modemList; +} + exports.touch = touch; exports.set = touch; -exports.get = get; \ No newline at end of file +exports.get = get; +exports.dump = dump; \ No newline at end of file