Commit 56758af4445b6300ccb363d1ab857bdf6918cfe0

Authored by Adhidarma Hadiwinoto
1 parent f8b177906d
Exists in master

http-command-server route-sms

Showing 4 changed files with 66 additions and 0 deletions Inline Diff

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
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