"use strict"; const express = require('express'); const nunjucks = require('nunjucks'); const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const matrix = require('komodo-sdk/matrix'); const routerSms = require('./router-sms'); const routerUssd = require('./router-ussd'); const routerStocks = require('./router-stocks'); const app = express(); app.use(express.static(__dirname + '/public', {maxAge: 24 * 3600 * 1000})); nunjucks.configure(__dirname + '/views', { autoescape: true, noCache: true, express: app }); app.use(function(req, res, next) { res.locals.site_name = config.handler_name; next(); }) function modemSignal(req, res, next) { const signal_strength = matrix && matrix.modem && matrix.modem.signal_strength ? matrix.modem.signal_strength : 0; res.locals.signal_strength = signal_strength; if (signal_strength < 2 || !signal_strength) { res.locals.signal_strength_image = 'signal-0.png'; res.locals.signal_strength_title = 'No signal'; } else if (signal_strength < 10) { res.locals.signal_strength_image = 'signal-1.png'; res.locals.signal_strength_title = 'Marginal'; } else if (signal_strength < 15) { res.locals.signal_strength_image = 'signal-2.png'; res.locals.signal_strength_title = 'OK'; } else if (signal_strength < 20) { res.locals.signal_strength_image = 'signal-3.png'; res.locals.signal_strength_title = 'Good'; } else { res.locals.signal_strength_image = 'signal-4.png'; res.locals.signal_strength_title = 'Excelent'; } next(); } app.use(modemSignal); app.get('/', function(req, res, next) { res.redirect('/sms'); }) app.use('/sms', routerSms); app.use('/ussd', routerUssd); app.use('/stocks', routerStocks); const modem_dashboard_port = (config && config.modem_dashboard && config.modem_dashboard.port) ? config.modem_dashboard.port : 22765; app.listen(modem_dashboard_port, function () { logger.info('Modem dashboard started', {listen_port: modem_dashboard_port}); });