Commit 69850c91423f4014a6c7e43f1f6187cb9745602b

Authored by Adhidarma Hadiwinoto
1 parent 05f433c05a
Exists in master

/smstools-config/queues-and-providers return json

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

lib/apiserver/routers/smstools-config.js
1 const childProcess = require('child_process'); 1 const childProcess = require('child_process');
2 2
3 const express = require('express'); 3 const express = require('express');
4 const bodyParser = require('body-parser'); 4 const bodyParser = require('body-parser');
5 5
6 const config = require('komodo-sdk/config'); 6 const config = require('komodo-sdk/config');
7 const logger = require('komodo-sdk/logger'); 7 const logger = require('komodo-sdk/logger');
8 8
9 const smstoolsConfig = require('../../smstools-config'); 9 const smstoolsConfig = require('../../smstools-config');
10 const smstoolsConfigData = require('../../smstools-config/config-file'); 10 const smstoolsConfigData = require('../../smstools-config/config-file');
11 const smstoolsConfigCreator = require('../../smstools-config/creator'); 11 const smstoolsConfigCreator = require('../../smstools-config/creator');
12 const smstoolsConfigSetter = require('../../smstools-config/setter'); 12 const smstoolsConfigSetter = require('../../smstools-config/setter');
13 const queuesAndProviders = require('../../smstools-config/queues-and-providers'); 13 const queuesAndProviders = require('../../smstools-config/queues-and-providers');
14 14
15 15
16 const router = express.Router(); 16 const router = express.Router();
17 module.exports = router; 17 module.exports = router;
18 18
19 async function pageIndex(req, res) { 19 async function pageIndex(req, res) {
20 const configString = await smstoolsConfigCreator(); 20 const configString = await smstoolsConfigCreator();
21 res.json({ 21 res.json({
22 dirty: smstoolsConfig.config.dirty, 22 dirty: smstoolsConfig.config.dirty,
23 config: smstoolsConfig.config, 23 config: smstoolsConfig.config,
24 configStringLength: configString.length, 24 configStringLength: configString.length,
25 configStringNrLines: (configString.match(/\n/g) || []).length, 25 configStringNrLines: (configString.match(/\n/g) || []).length,
26 configString, 26 configString,
27 }); 27 });
28 } 28 }
29 29
30 async function pageGenerate(req, res) { 30 async function pageGenerate(req, res) {
31 res.end(await smstoolsConfigCreator()); 31 res.end(await smstoolsConfigCreator());
32 } 32 }
33 33
34 async function pageModemList(req, res) { 34 async function pageModemList(req, res) {
35 const modems = []; 35 const modems = [];
36 // eslint-disable-next-line no-restricted-syntax 36 // eslint-disable-next-line no-restricted-syntax
37 for (const [key, value] of Object.entries(smstoolsConfigData.modems || {})) { 37 for (const [key, value] of Object.entries(smstoolsConfigData.modems || {})) {
38 modems.push({ 38 modems.push({
39 label: `${key}: ${value.device}, INCOMING${value.outgoing ? ' and OUTGOING' : ''}`, 39 label: `${key}: ${value.device}, INCOMING${value.outgoing ? ' and OUTGOING' : ''}`,
40 value: key, 40 value: key,
41 data: value, 41 data: value,
42 }); 42 });
43 } 43 }
44 44
45 res.json(modems); 45 res.json(modems);
46 } 46 }
47 47
48 async function pageSet(req, res) { 48 async function pageSet(req, res) {
49 const keyword = (req.params.keyword || req.query.keyword || '').trim(); 49 const keyword = (req.params.keyword || req.query.keyword || '').trim();
50 const value = (req.query.value || '').trim(); 50 const value = (req.query.value || '').trim();
51 51
52 if (!keyword) { 52 if (!keyword) {
53 res.end('Invalid keyword'); 53 res.end('Invalid keyword');
54 return; 54 return;
55 } 55 }
56 56
57 const result = await smstoolsConfigSetter.set(keyword, value); 57 const result = await smstoolsConfigSetter.set(keyword, value);
58 res.json({ 58 res.json({
59 dirty: !!smstoolsConfigData.dirty, 59 dirty: !!smstoolsConfigData.dirty,
60 result, 60 result,
61 }); 61 });
62 } 62 }
63 63
64 async function pageModemSet(req, res) { 64 async function pageModemSet(req, res) {
65 if (!req.body) { 65 if (!req.body) {
66 res.json({ 66 res.json({
67 status: 'NOT OK', 67 status: 'NOT OK',
68 message: 'Empty body', 68 message: 'Empty body',
69 }); 69 });
70 return; 70 return;
71 } 71 }
72 72
73 const modemName = (req.params.modemName || '').trim(); 73 const modemName = (req.params.modemName || '').trim();
74 if (!modemName) { 74 if (!modemName) {
75 res.json({ 75 res.json({
76 status: 'NOT OK', 76 status: 'NOT OK',
77 message: 'Invalid modem name', 77 message: 'Invalid modem name',
78 }); 78 });
79 return; 79 return;
80 } 80 }
81 81
82 const result = await smstoolsConfigSetter.setModem(modemName, req.body); 82 const result = await smstoolsConfigSetter.setModem(modemName, req.body);
83 res.json({ 83 res.json({
84 dirty: !!smstoolsConfigData.dirty, 84 dirty: !!smstoolsConfigData.dirty,
85 result, 85 result,
86 }); 86 });
87 } 87 }
88 88
89 async function pageModemSetSingleValue(req, res) { 89 async function pageModemSetSingleValue(req, res) {
90 if (!req.body) { 90 if (!req.body) {
91 res.json({ 91 res.json({
92 status: 'NOT OK', 92 status: 'NOT OK',
93 message: 'Empty body', 93 message: 'Empty body',
94 }); 94 });
95 return; 95 return;
96 } 96 }
97 97
98 const modemName = (req.params.modemName || '').trim(); 98 const modemName = (req.params.modemName || '').trim();
99 if (!modemName) { 99 if (!modemName) {
100 res.json({ 100 res.json({
101 status: 'NOT OK', 101 status: 'NOT OK',
102 message: 'Invalid modem name', 102 message: 'Invalid modem name',
103 }); 103 });
104 return; 104 return;
105 } 105 }
106 106
107 const keyword = (req.body.keyword || '').trim(); 107 const keyword = (req.body.keyword || '').trim();
108 if (!keyword) { 108 if (!keyword) {
109 res.json({ 109 res.json({
110 status: 'NOT OK', 110 status: 'NOT OK',
111 message: 'Invalid keyword', 111 message: 'Invalid keyword',
112 }); 112 });
113 return; 113 return;
114 } 114 }
115 115
116 const { value } = req.body; 116 const { value } = req.body;
117 117
118 const result = await smstoolsConfigSetter.setModemSingleValue(modemName, keyword, value); 118 const result = await smstoolsConfigSetter.setModemSingleValue(modemName, keyword, value);
119 res.json({ 119 res.json({
120 dirty: !!smstoolsConfigData.dirty, 120 dirty: !!smstoolsConfigData.dirty,
121 result, 121 result,
122 }); 122 });
123 } 123 }
124 124
125 async function pageModemDelete(req, res) { 125 async function pageModemDelete(req, res) {
126 const modemName = (req.params.modemName || '').trim(); 126 const modemName = (req.params.modemName || '').trim();
127 if (!modemName) { 127 if (!modemName) {
128 res.json({ 128 res.json({
129 status: 'NOT OK', 129 status: 'NOT OK',
130 message: 'Invalid modem name', 130 message: 'Invalid modem name',
131 }); 131 });
132 return; 132 return;
133 } 133 }
134 134
135 const result = await smstoolsConfigSetter.delModem(modemName); 135 const result = await smstoolsConfigSetter.delModem(modemName);
136 res.json({ 136 res.json({
137 dirty: !!smstoolsConfigData.dirty, 137 dirty: !!smstoolsConfigData.dirty,
138 result, 138 result,
139 }); 139 });
140 } 140 }
141 141
142 async function pageInstallConfig(req, res) { 142 async function pageInstallConfig(req, res) {
143 logger.info('ROUTER-SMSTOOLS-CONFIG: Going to write configuration and restart smsd service'); 143 logger.info('ROUTER-SMSTOOLS-CONFIG: Going to write configuration and restart smsd service');
144 await smstoolsConfigSetter.writeConfig(); 144 await smstoolsConfigSetter.writeConfig();
145 145
146 const fileToExec = `${process.cwd()}/bin/smstools-config-install`; 146 const fileToExec = `${process.cwd()}/bin/smstools-config-install`;
147 childProcess.execFile(fileToExec, [config.smstools_config_file || '/etc/smsd.conf'], (err, stdout, stderr) => { 147 childProcess.execFile(fileToExec, [config.smstools_config_file || '/etc/smsd.conf'], (err, stdout, stderr) => {
148 res.json({ 148 res.json({
149 err, 149 err,
150 stdout, 150 stdout,
151 stderr, 151 stderr,
152 }); 152 });
153 }); 153 });
154 } 154 }
155 155
156 async function pageQueuesAndProviders(req, res) { 156 async function pageQueuesAndProviders(req, res) {
157 res.end(await queuesAndProviders.dump()); 157 res.json(smstoolsConfigData.queues);
158 } 158 }
159 159
160 function pageModemQueueName(req, res) { 160 function pageModemQueueName(req, res) {
161 const modemName = req.params.modemName || req.query.modemName || req.query.modem_name; 161 const modemName = req.params.modemName || req.query.modemName || req.query.modem_name;
162 res.json({ 162 res.json({
163 modemName, 163 modemName,
164 queueName: queuesAndProviders.getModemQueueName(modemName), 164 queueName: queuesAndProviders.getModemQueueName(modemName),
165 }); 165 });
166 } 166 }
167 167
168 router.get('/', pageIndex); 168 router.get('/', pageIndex);
169 router.get('/generate', pageGenerate); 169 router.get('/generate', pageGenerate);
170 router.get('/modems', pageModemList); 170 router.get('/modems', pageModemList);
171 171
172 router.get('/set/:keyword', pageSet); 172 router.get('/set/:keyword', pageSet);
173 router.post('/modem/set/:modemName', bodyParser.json({ type: '*/json' }), pageModemSet); 173 router.post('/modem/set/:modemName', bodyParser.json({ type: '*/json' }), pageModemSet);
174 router.post('/modem/set-single-value/:modemName', bodyParser.json({ type: '*/json' }), pageModemSetSingleValue); 174 router.post('/modem/set-single-value/:modemName', bodyParser.json({ type: '*/json' }), pageModemSetSingleValue);
175 router.get('/modem/delete/:modemName', pageModemDelete); 175 router.get('/modem/delete/:modemName', pageModemDelete);
176 router.get('/install-config', pageInstallConfig); 176 router.get('/install-config', pageInstallConfig);
177 router.get('/queues-and-providers', pageQueuesAndProviders); 177 router.get('/queues-and-providers', pageQueuesAndProviders);
178 router.get('/modem-queue-name', pageModemQueueName); 178 router.get('/modem-queue-name', pageModemQueueName);
179 router.get('/modem-queue-name/:modemName', pageModemQueueName); 179 router.get('/modem-queue-name/:modemName', pageModemQueueName);
180 180