Commit dabbcb087ea1c360a2305a739b07e94c3ddc57fa
1 parent
d542327001
Exists in
master
Uppercase prefix
Showing 1 changed file with 2 additions and 0 deletions Inline Diff
lib/apiserver/router-config-senders.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | const fs = require('fs'); | 3 | const fs = require('fs'); |
4 | const express = require('express'); | 4 | const express = require('express'); |
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 router = express.Router(); | 9 | const router = express.Router(); |
10 | module.exports = router; | 10 | module.exports = router; |
11 | 11 | ||
12 | function saveConfig() { | 12 | function saveConfig() { |
13 | fs.writeFile(global.KOMODO_SDK_CONFIG_FILENAME, JSON.stringify(config, null, 4), (err) => { | 13 | fs.writeFile(global.KOMODO_SDK_CONFIG_FILENAME, JSON.stringify(config, null, 4), (err) => { |
14 | logger.warn(`APISERVER: ERROR writing config file. ${err.toString()}`); | 14 | logger.warn(`APISERVER: ERROR writing config file. ${err.toString()}`); |
15 | }); | 15 | }); |
16 | } | 16 | } |
17 | 17 | ||
18 | function initConfig(req, res, next) { | 18 | function initConfig(req, res, next) { |
19 | if (typeof config.senders_imsi !== 'object') { | 19 | if (typeof config.senders_imsi !== 'object') { |
20 | config.senders_imsi = { | 20 | config.senders_imsi = { |
21 | prefix_names: {}, | 21 | prefix_names: {}, |
22 | unknown_prefix: [], | 22 | unknown_prefix: [], |
23 | default: [], | 23 | default: [], |
24 | }; | 24 | }; |
25 | } | 25 | } |
26 | 26 | ||
27 | if (typeof config.senders_imsi.prefix_names !== 'object') { | 27 | if (typeof config.senders_imsi.prefix_names !== 'object') { |
28 | config.senders_imsi.prefix_names = {}; | 28 | config.senders_imsi.prefix_names = {}; |
29 | } | 29 | } |
30 | 30 | ||
31 | if (!Array.isArray(config.senders_imsi.unknown_prefix)) { | 31 | if (!Array.isArray(config.senders_imsi.unknown_prefix)) { |
32 | config.senders_imsi.unknown_prefix = []; | 32 | config.senders_imsi.unknown_prefix = []; |
33 | } | 33 | } |
34 | 34 | ||
35 | if (!Array.isArray(config.senders_imsi.default)) { | 35 | if (!Array.isArray(config.senders_imsi.default)) { |
36 | config.senders_imsi.default = []; | 36 | config.senders_imsi.default = []; |
37 | } | 37 | } |
38 | 38 | ||
39 | next(); | 39 | next(); |
40 | } | 40 | } |
41 | 41 | ||
42 | function pageIndex(req, res) { | 42 | function pageIndex(req, res) { |
43 | res.json(config.senders_imsi); | 43 | res.json(config.senders_imsi); |
44 | } | 44 | } |
45 | 45 | ||
46 | function delImsi(data, imsi) { | 46 | function delImsi(data, imsi) { |
47 | const idx = data.indexOf(imsi); | 47 | const idx = data.indexOf(imsi); |
48 | if (idx < 0) return; | 48 | if (idx < 0) return; |
49 | 49 | ||
50 | data.splice(idx, 1); | 50 | data.splice(idx, 1); |
51 | saveConfig(); | 51 | saveConfig(); |
52 | } | 52 | } |
53 | 53 | ||
54 | function addImsi(data, imsi) { | 54 | function addImsi(data, imsi) { |
55 | if (data.indexOf(imsi) >= 0) { | 55 | if (data.indexOf(imsi) >= 0) { |
56 | return false; | 56 | return false; |
57 | } | 57 | } |
58 | 58 | ||
59 | data.push(imsi); | 59 | data.push(imsi); |
60 | saveConfig(); | 60 | saveConfig(); |
61 | 61 | ||
62 | return true; | 62 | return true; |
63 | } | 63 | } |
64 | 64 | ||
65 | function addImsiResponse(req, res) { | 65 | function addImsiResponse(req, res) { |
66 | if (res.locals.add_imsi_success) { | 66 | if (res.locals.add_imsi_success) { |
67 | res.json({ | 67 | res.json({ |
68 | status: 'OK', | 68 | status: 'OK', |
69 | message: 'IMSI berhasil didaftarkan', | 69 | message: 'IMSI berhasil didaftarkan', |
70 | }); | 70 | }); |
71 | } else { | 71 | } else { |
72 | res.json({ | 72 | res.json({ |
73 | status: 'NOT OK', | 73 | status: 'NOT OK', |
74 | message: 'IMSI sudah terdaftar', | 74 | message: 'IMSI sudah terdaftar', |
75 | }); | 75 | }); |
76 | } | 76 | } |
77 | } | 77 | } |
78 | 78 | ||
79 | /** | 79 | /** |
80 | * Menambahkan IMSI pada list sender by prefix | 80 | * Menambahkan IMSI pada list sender by prefix |
81 | * | 81 | * |
82 | * @param {object} req - Express request object | 82 | * @param {object} req - Express request object |
83 | * @param {object} req.query - query string object | 83 | * @param {object} req.query - query string object |
84 | * @param {string} req.query.prefix - nama prefix | 84 | * @param {string} req.query.prefix - nama prefix |
85 | * @param {string} req.query.imsi - nomor imsi | 85 | * @param {string} req.query.imsi - nomor imsi |
86 | * @param {object} res - Express result object | 86 | * @param {object} res - Express result object |
87 | */ | 87 | */ |
88 | function pageAddForPrefix(req, res, next) { | 88 | function pageAddForPrefix(req, res, next) { |
89 | if (!req.query.prefix) { | 89 | if (!req.query.prefix) { |
90 | res.json({ | 90 | res.json({ |
91 | status: 'NOT-OK', | 91 | status: 'NOT-OK', |
92 | message: 'Undefined prefix', | 92 | message: 'Undefined prefix', |
93 | }); | 93 | }); |
94 | 94 | ||
95 | return; | 95 | return; |
96 | } | 96 | } |
97 | 97 | ||
98 | if (!req.query.imsi) { | 98 | if (!req.query.imsi) { |
99 | res.json({ | 99 | res.json({ |
100 | status: 'NOT-OK', | 100 | status: 'NOT-OK', |
101 | message: 'Undefined IMSI', | 101 | message: 'Undefined IMSI', |
102 | }); | 102 | }); |
103 | 103 | ||
104 | return; | 104 | return; |
105 | } | 105 | } |
106 | |||
107 | req.query.prefix = req.query.prefix.toUpperCase(); | ||
106 | 108 | ||
107 | if (!config.senders_imsi.prefix_names[req.query.prefix]) { | 109 | if (!config.senders_imsi.prefix_names[req.query.prefix]) { |
108 | config.senders_imsi.prefix_names[req.query.prefix] = []; | 110 | config.senders_imsi.prefix_names[req.query.prefix] = []; |
109 | } | 111 | } |
110 | 112 | ||
111 | res.locals.add_imsi_success = addImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); | 113 | res.locals.add_imsi_success = addImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); |
112 | next(); | 114 | next(); |
113 | } | 115 | } |
114 | 116 | ||
115 | function pageDelForPrefix(req, res) { | 117 | function pageDelForPrefix(req, res) { |
116 | if (!req.query.prefix) { | 118 | if (!req.query.prefix) { |
117 | res.json({ | 119 | res.json({ |
118 | status: 'NOT-OK', | 120 | status: 'NOT-OK', |
119 | message: 'Undefined prefix', | 121 | message: 'Undefined prefix', |
120 | }); | 122 | }); |
121 | 123 | ||
122 | return; | 124 | return; |
123 | } | 125 | } |
124 | 126 | ||
125 | if (!req.query.imsi) { | 127 | if (!req.query.imsi) { |
126 | res.json({ | 128 | res.json({ |
127 | status: 'NOT-OK', | 129 | status: 'NOT-OK', |
128 | message: 'Undefined IMSI', | 130 | message: 'Undefined IMSI', |
129 | }); | 131 | }); |
130 | 132 | ||
131 | return; | 133 | return; |
132 | } | 134 | } |
133 | 135 | ||
134 | delImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); | 136 | delImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); |
135 | 137 | ||
136 | res.json({ | 138 | res.json({ |
137 | status: 'OK', | 139 | status: 'OK', |
138 | message: 'IMSI berhasil dihapus', | 140 | message: 'IMSI berhasil dihapus', |
139 | }); | 141 | }); |
140 | } | 142 | } |
141 | 143 | ||
142 | /** | 144 | /** |
143 | * Menambahkan IMSI pada list sender untuk prefix tidak dikenal | 145 | * Menambahkan IMSI pada list sender untuk prefix tidak dikenal |
144 | * | 146 | * |
145 | * @param {object} req - Express request object | 147 | * @param {object} req - Express request object |
146 | * @param {object} req.query - query string object | 148 | * @param {object} req.query - query string object |
147 | * @param {string} req.query.imsi - nomor imsi | 149 | * @param {string} req.query.imsi - nomor imsi |
148 | * @param {object} res - Express result object | 150 | * @param {object} res - Express result object |
149 | */ | 151 | */ |
150 | function pageAddForUnknownPrefix(req, res, next) { | 152 | function pageAddForUnknownPrefix(req, res, next) { |
151 | if (!req.query.imsi) { | 153 | if (!req.query.imsi) { |
152 | res.json({ | 154 | res.json({ |
153 | status: 'NOT-OK', | 155 | status: 'NOT-OK', |
154 | message: 'Undefined IMSI', | 156 | message: 'Undefined IMSI', |
155 | }); | 157 | }); |
156 | 158 | ||
157 | return; | 159 | return; |
158 | } | 160 | } |
159 | 161 | ||
160 | res.locals.add_imsi_success = addImsi(config.senders_imsi.unknown_prefix, req.query.imsi); | 162 | res.locals.add_imsi_success = addImsi(config.senders_imsi.unknown_prefix, req.query.imsi); |
161 | next(); | 163 | next(); |
162 | } | 164 | } |
163 | 165 | ||
164 | function pageDelForUnknownPrefix(req, res) { | 166 | function pageDelForUnknownPrefix(req, res) { |
165 | if (!req.query.imsi) { | 167 | if (!req.query.imsi) { |
166 | res.json({ | 168 | res.json({ |
167 | status: 'NOT-OK', | 169 | status: 'NOT-OK', |
168 | message: 'Undefined IMSI', | 170 | message: 'Undefined IMSI', |
169 | }); | 171 | }); |
170 | 172 | ||
171 | return; | 173 | return; |
172 | } | 174 | } |
173 | 175 | ||
174 | delImsi(config.senders_imsi.unknown_prefix, req.query.imsi); | 176 | delImsi(config.senders_imsi.unknown_prefix, req.query.imsi); |
175 | res.json({ | 177 | res.json({ |
176 | status: 'OK', | 178 | status: 'OK', |
177 | message: 'IMSI berhasil dihapus', | 179 | message: 'IMSI berhasil dihapus', |
178 | }); | 180 | }); |
179 | } | 181 | } |
180 | 182 | ||
181 | /** | 183 | /** |
182 | * Menambahkan IMSI pada list sender default | 184 | * Menambahkan IMSI pada list sender default |
183 | * | 185 | * |
184 | * @param {object} req - Express request object | 186 | * @param {object} req - Express request object |
185 | * @param {object} req.query - query string object | 187 | * @param {object} req.query - query string object |
186 | * @param {string} req.query.imsi - nomor imsi | 188 | * @param {string} req.query.imsi - nomor imsi |
187 | * @param {object} res - Express result object | 189 | * @param {object} res - Express result object |
188 | */ | 190 | */ |
189 | function pageAddForDefault(req, res, next) { | 191 | function pageAddForDefault(req, res, next) { |
190 | if (!req.query.imsi) { | 192 | if (!req.query.imsi) { |
191 | res.json({ | 193 | res.json({ |
192 | status: 'NOT-OK', | 194 | status: 'NOT-OK', |
193 | message: 'Undefined IMSI', | 195 | message: 'Undefined IMSI', |
194 | }); | 196 | }); |
195 | 197 | ||
196 | return; | 198 | return; |
197 | } | 199 | } |
198 | 200 | ||
199 | res.locals.add_imsi_success = addImsi(config.senders_imsi.default, req.query.imsi); | 201 | res.locals.add_imsi_success = addImsi(config.senders_imsi.default, req.query.imsi); |
200 | next(); | 202 | next(); |
201 | } | 203 | } |
202 | 204 | ||
203 | function pageDelForDefault(req, res) { | 205 | function pageDelForDefault(req, res) { |
204 | if (!req.query.imsi) { | 206 | if (!req.query.imsi) { |
205 | res.json({ | 207 | res.json({ |
206 | status: 'NOT-OK', | 208 | status: 'NOT-OK', |
207 | message: 'Undefined IMSI', | 209 | message: 'Undefined IMSI', |
208 | }); | 210 | }); |
209 | 211 | ||
210 | return; | 212 | return; |
211 | } | 213 | } |
212 | 214 | ||
213 | delImsi(config.senders_imsi.default, req.query.imsi); | 215 | delImsi(config.senders_imsi.default, req.query.imsi); |
214 | res.json({ | 216 | res.json({ |
215 | status: 'OK', | 217 | status: 'OK', |
216 | message: 'IMSI berhasil dihapus', | 218 | message: 'IMSI berhasil dihapus', |
217 | }); | 219 | }); |
218 | } | 220 | } |
219 | 221 | ||
220 | router.use(initConfig); | 222 | router.use(initConfig); |
221 | router.get('/', initConfig, pageIndex); | 223 | router.get('/', initConfig, pageIndex); |
222 | 224 | ||
223 | router.get('/add-for-prefix', pageAddForPrefix, addImsiResponse); | 225 | router.get('/add-for-prefix', pageAddForPrefix, addImsiResponse); |
224 | router.get('/add-for-unknown-prefix', pageAddForUnknownPrefix, addImsiResponse); | 226 | router.get('/add-for-unknown-prefix', pageAddForUnknownPrefix, addImsiResponse); |
225 | router.get('/add-for-default', pageAddForDefault, addImsiResponse) | 227 | router.get('/add-for-default', pageAddForDefault, addImsiResponse) |
226 | 228 | ||
227 | router.get('/del-for-prefix', pageDelForPrefix); | 229 | router.get('/del-for-prefix', pageDelForPrefix); |
228 | router.get('/del-for-unknown-prefix', pageDelForUnknownPrefix); | 230 | router.get('/del-for-unknown-prefix', pageDelForUnknownPrefix); |
229 | router.get('/del-for-default', pageDelForDefault); | 231 | router.get('/del-for-default', pageDelForDefault); |
230 | 232 |