Commit 69850c91423f4014a6c7e43f1f6187cb9745602b
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 |