Commit 56758af4445b6300ccb363d1ab857bdf6918cfe0
1 parent
f8b177906d
Exists in
master
http-command-server route-sms
Showing 4 changed files with 66 additions and 0 deletions Inline Diff
index.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | process.chdir(__dirname); | 3 | process.chdir(__dirname); |
4 | 4 | ||
5 | require('fs').writeFileSync('pid.txt', process.pid); | 5 | require('fs').writeFileSync('pid.txt', process.pid); |
6 | 6 | ||
7 | require('./lib/http-command-server'); | ||
7 | require('./lib/modem'); | 8 | require('./lib/modem'); |
8 | 9 |
lib/http-command-server/index.js
File was created | 1 | 'use strict'; | |
2 | |||
3 | const express = require('express'); | ||
4 | |||
5 | const config = require('komodo-sdk/config'); | ||
6 | const logger = require('komodo-sdk/logger'); | ||
7 | |||
8 | const routerSMS = require('./router-sms'); | ||
9 | |||
10 | const app = express(); | ||
11 | |||
12 | function middlewareCustomLog(req, res, next) { | ||
13 | logger.info('Incoming request on HTTP command server', { ip: req.ip, url: req.url }); | ||
14 | next(); | ||
15 | } | ||
16 | |||
17 | function middlewareCheckApikey(req, res, next) { | ||
18 | if (!req.query.apikey || (req.query.apikey !== config.http_command_server.apikey)) { | ||
19 | res.json({ | ||
20 | status: 'NOT-OK', | ||
21 | error: 'INVALID_APIKEY', | ||
22 | message: 'Invalid apikey', | ||
23 | }); | ||
24 | } else { | ||
25 | next(); | ||
26 | } | ||
27 | } | ||
28 | |||
29 | app.use(middlewareCustomLog); | ||
30 | app.use(middlewareCheckApikey); | ||
31 | app.use('/sms', routerSMS); | ||
32 | |||
33 | |||
34 | app.listen(config.http_command_server.listen_port, () => { | ||
35 | logger.info(`HTTP command server listeing on port ${config.http_command_server.listen_port}`); | ||
36 | }); | ||
37 |
lib/http-command-server/router-sms.js
File was created | 1 | 'use strict'; | |
2 | |||
3 | const express = require('express'); | ||
4 | |||
5 | const modem = require('../modem'); | ||
6 | |||
7 | const router = express.Router(); | ||
8 | module.exports = router; | ||
9 | |||
10 | function handlerIndex(req, res) { | ||
11 | if (!req.query || !req.query.number || !req.query.msg) { | ||
12 | res.json({ | ||
13 | status: 'NOT-OK', | ||
14 | error: 'INVALID-PARAMETER', | ||
15 | message: 'Invalid parameter. Missing number or msg parameter.', | ||
16 | }); | ||
17 | return; | ||
18 | } | ||
19 | |||
20 | res.json({ | ||
21 | status: 'OK', | ||
22 | error: false, | ||
23 | message: 'Message queued.', | ||
24 | }); | ||
25 | modem.sendSMS(req.query.number, req.query.msg); | ||
26 | } | ||
27 | |||
28 | router.get('/', handlerIndex); | ||
29 |
package.json
1 | { | 1 | { |
2 | "name": "komodo-handler-sms", | 2 | "name": "komodo-handler-sms", |
3 | "version": "0.9.0", | 3 | "version": "0.9.0", |
4 | "description": "Generic SMS handler / driver", | 4 | "description": "Generic SMS handler / driver", |
5 | "main": "index.js", | 5 | "main": "index.js", |
6 | "scripts": { | 6 | "scripts": { |
7 | "test": "mocha" | 7 | "test": "mocha" |
8 | }, | 8 | }, |
9 | "repository": { | 9 | "repository": { |
10 | "type": "git", | 10 | "type": "git", |
11 | "url": "http://gitlab.kodesumber.com/komodo/komodo-handler-sms.git" | 11 | "url": "http://gitlab.kodesumber.com/komodo/komodo-handler-sms.git" |
12 | }, | 12 | }, |
13 | "keywords": [ | 13 | "keywords": [ |
14 | "komodo", | 14 | "komodo", |
15 | "sms", | 15 | "sms", |
16 | "tektrans", | 16 | "tektrans", |
17 | "ppob" | 17 | "ppob" |
18 | ], | 18 | ], |
19 | "author": "Adhidarma Hadiwinoto <me@adhisimon.org>", | 19 | "author": "Adhidarma Hadiwinoto <me@adhisimon.org>", |
20 | "license": "ISC", | 20 | "license": "ISC", |
21 | "devDependencies": { | 21 | "devDependencies": { |
22 | "eslint": "^5.16.0", | 22 | "eslint": "^5.16.0", |
23 | "eslint-config-airbnb-base": "^13.2.0", | 23 | "eslint-config-airbnb-base": "^13.2.0", |
24 | "eslint-plugin-import": "^2.18.2", | 24 | "eslint-plugin-import": "^2.18.2", |
25 | "should": "^13.2.3" | 25 | "should": "^13.2.3" |
26 | }, | 26 | }, |
27 | "dependencies": { | 27 | "dependencies": { |
28 | "@serialport/parser-delimiter": "^2.0.2", | 28 | "@serialport/parser-delimiter": "^2.0.2", |
29 | "@serialport/parser-readline": "^2.0.2", | 29 | "@serialport/parser-readline": "^2.0.2", |
30 | "express": "^4.17.1", | ||
30 | "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git", | 31 | "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git", |
31 | "locks": "^0.2.2", | 32 | "locks": "^0.2.2", |
32 | "moment": "^2.24.0", | 33 | "moment": "^2.24.0", |
33 | "request": "^2.88.0", | 34 | "request": "^2.88.0", |
34 | "serialport": "^7.1.5", | 35 | "serialport": "^7.1.5", |
35 | "serialport-gsm": "^3.2.0" | 36 | "serialport-gsm": "^3.2.0" |
36 | } | 37 | } |
37 | } | 38 | } |
38 | 39 |