Commit 6e61afe0ff557c9ef3f023c4c6396151579bb8ea
1 parent
738bde20a8
Exists in
master
Parameter true pada delImsi di prefix
Showing 1 changed file with 1 additions and 1 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, cleanup) { | 46 | function delImsi(data, imsi, cleanup) { |
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 | 51 | ||
52 | if (cleanup) { | 52 | if (cleanup) { |
53 | Object.keys(config.senders_imsi.prefix_names).forEach((key) => { | 53 | Object.keys(config.senders_imsi.prefix_names).forEach((key) => { |
54 | if (!config.senders_imsi.prefix_names[key]) return; | 54 | if (!config.senders_imsi.prefix_names[key]) return; |
55 | 55 | ||
56 | if (!Array.isArray(config.senders_imsi.prefix_names[key])) return; | 56 | if (!Array.isArray(config.senders_imsi.prefix_names[key])) return; |
57 | 57 | ||
58 | if (config.senders_imsi.prefix_names[key].length === 0) { | 58 | if (config.senders_imsi.prefix_names[key].length === 0) { |
59 | delete config.senders_imsi.prefix_names[key]; | 59 | delete config.senders_imsi.prefix_names[key]; |
60 | } | 60 | } |
61 | }); | 61 | }); |
62 | } | 62 | } |
63 | 63 | ||
64 | saveConfig(); | 64 | saveConfig(); |
65 | } | 65 | } |
66 | 66 | ||
67 | function addImsi(data, imsi) { | 67 | function addImsi(data, imsi) { |
68 | if (data.indexOf(imsi) >= 0) { | 68 | if (data.indexOf(imsi) >= 0) { |
69 | return false; | 69 | return false; |
70 | } | 70 | } |
71 | 71 | ||
72 | data.push(imsi); | 72 | data.push(imsi); |
73 | saveConfig(); | 73 | saveConfig(); |
74 | 74 | ||
75 | return true; | 75 | return true; |
76 | } | 76 | } |
77 | 77 | ||
78 | function addImsiResponse(req, res) { | 78 | function addImsiResponse(req, res) { |
79 | if (res.locals.add_imsi_success) { | 79 | if (res.locals.add_imsi_success) { |
80 | res.json({ | 80 | res.json({ |
81 | status: 'OK', | 81 | status: 'OK', |
82 | message: 'IMSI berhasil didaftarkan', | 82 | message: 'IMSI berhasil didaftarkan', |
83 | }); | 83 | }); |
84 | } else { | 84 | } else { |
85 | res.json({ | 85 | res.json({ |
86 | status: 'NOT OK', | 86 | status: 'NOT OK', |
87 | message: 'IMSI sudah terdaftar', | 87 | message: 'IMSI sudah terdaftar', |
88 | }); | 88 | }); |
89 | } | 89 | } |
90 | } | 90 | } |
91 | 91 | ||
92 | /** | 92 | /** |
93 | * Menambahkan IMSI pada list sender by prefix | 93 | * Menambahkan IMSI pada list sender by prefix |
94 | * | 94 | * |
95 | * @param {object} req - Express request object | 95 | * @param {object} req - Express request object |
96 | * @param {object} req.query - query string object | 96 | * @param {object} req.query - query string object |
97 | * @param {string} req.query.prefix - nama prefix | 97 | * @param {string} req.query.prefix - nama prefix |
98 | * @param {string} req.query.imsi - nomor imsi | 98 | * @param {string} req.query.imsi - nomor imsi |
99 | * @param {object} res - Express result object | 99 | * @param {object} res - Express result object |
100 | */ | 100 | */ |
101 | function pageAddForPrefix(req, res, next) { | 101 | function pageAddForPrefix(req, res, next) { |
102 | if (!req.query.prefix) { | 102 | if (!req.query.prefix) { |
103 | res.json({ | 103 | res.json({ |
104 | status: 'NOT-OK', | 104 | status: 'NOT-OK', |
105 | message: 'Undefined prefix', | 105 | message: 'Undefined prefix', |
106 | }); | 106 | }); |
107 | 107 | ||
108 | return; | 108 | return; |
109 | } | 109 | } |
110 | 110 | ||
111 | if (!req.query.imsi) { | 111 | if (!req.query.imsi) { |
112 | res.json({ | 112 | res.json({ |
113 | status: 'NOT-OK', | 113 | status: 'NOT-OK', |
114 | message: 'Undefined IMSI', | 114 | message: 'Undefined IMSI', |
115 | }); | 115 | }); |
116 | 116 | ||
117 | return; | 117 | return; |
118 | } | 118 | } |
119 | 119 | ||
120 | req.query.prefix = req.query.prefix.toUpperCase(); | 120 | req.query.prefix = req.query.prefix.toUpperCase(); |
121 | 121 | ||
122 | if (!config.senders_imsi.prefix_names[req.query.prefix]) { | 122 | if (!config.senders_imsi.prefix_names[req.query.prefix]) { |
123 | config.senders_imsi.prefix_names[req.query.prefix] = []; | 123 | config.senders_imsi.prefix_names[req.query.prefix] = []; |
124 | } | 124 | } |
125 | 125 | ||
126 | res.locals.add_imsi_success = addImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); | 126 | res.locals.add_imsi_success = addImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); |
127 | next(); | 127 | next(); |
128 | } | 128 | } |
129 | 129 | ||
130 | function pageDelForPrefix(req, res) { | 130 | function pageDelForPrefix(req, res) { |
131 | if (!req.query.prefix) { | 131 | if (!req.query.prefix) { |
132 | res.json({ | 132 | res.json({ |
133 | status: 'NOT-OK', | 133 | status: 'NOT-OK', |
134 | message: 'Undefined prefix', | 134 | message: 'Undefined prefix', |
135 | }); | 135 | }); |
136 | 136 | ||
137 | return; | 137 | return; |
138 | } | 138 | } |
139 | 139 | ||
140 | if (!req.query.imsi) { | 140 | if (!req.query.imsi) { |
141 | res.json({ | 141 | res.json({ |
142 | status: 'NOT-OK', | 142 | status: 'NOT-OK', |
143 | message: 'Undefined IMSI', | 143 | message: 'Undefined IMSI', |
144 | }); | 144 | }); |
145 | 145 | ||
146 | return; | 146 | return; |
147 | } | 147 | } |
148 | 148 | ||
149 | delImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); | 149 | delImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi, true); |
150 | 150 | ||
151 | res.json({ | 151 | res.json({ |
152 | status: 'OK', | 152 | status: 'OK', |
153 | message: 'IMSI berhasil dihapus', | 153 | message: 'IMSI berhasil dihapus', |
154 | }); | 154 | }); |
155 | } | 155 | } |
156 | 156 | ||
157 | /** | 157 | /** |
158 | * Menambahkan IMSI pada list sender untuk prefix tidak dikenal | 158 | * Menambahkan IMSI pada list sender untuk prefix tidak dikenal |
159 | * | 159 | * |
160 | * @param {object} req - Express request object | 160 | * @param {object} req - Express request object |
161 | * @param {object} req.query - query string object | 161 | * @param {object} req.query - query string object |
162 | * @param {string} req.query.imsi - nomor imsi | 162 | * @param {string} req.query.imsi - nomor imsi |
163 | * @param {object} res - Express result object | 163 | * @param {object} res - Express result object |
164 | */ | 164 | */ |
165 | function pageAddForUnknownPrefix(req, res, next) { | 165 | function pageAddForUnknownPrefix(req, res, next) { |
166 | if (!req.query.imsi) { | 166 | if (!req.query.imsi) { |
167 | res.json({ | 167 | res.json({ |
168 | status: 'NOT-OK', | 168 | status: 'NOT-OK', |
169 | message: 'Undefined IMSI', | 169 | message: 'Undefined IMSI', |
170 | }); | 170 | }); |
171 | 171 | ||
172 | return; | 172 | return; |
173 | } | 173 | } |
174 | 174 | ||
175 | res.locals.add_imsi_success = addImsi(config.senders_imsi.unknown_prefix, req.query.imsi); | 175 | res.locals.add_imsi_success = addImsi(config.senders_imsi.unknown_prefix, req.query.imsi); |
176 | next(); | 176 | next(); |
177 | } | 177 | } |
178 | 178 | ||
179 | function pageDelForUnknownPrefix(req, res) { | 179 | function pageDelForUnknownPrefix(req, res) { |
180 | if (!req.query.imsi) { | 180 | if (!req.query.imsi) { |
181 | res.json({ | 181 | res.json({ |
182 | status: 'NOT-OK', | 182 | status: 'NOT-OK', |
183 | message: 'Undefined IMSI', | 183 | message: 'Undefined IMSI', |
184 | }); | 184 | }); |
185 | 185 | ||
186 | return; | 186 | return; |
187 | } | 187 | } |
188 | 188 | ||
189 | delImsi(config.senders_imsi.unknown_prefix, req.query.imsi); | 189 | delImsi(config.senders_imsi.unknown_prefix, req.query.imsi); |
190 | res.json({ | 190 | res.json({ |
191 | status: 'OK', | 191 | status: 'OK', |
192 | message: 'IMSI berhasil dihapus', | 192 | message: 'IMSI berhasil dihapus', |
193 | }); | 193 | }); |
194 | } | 194 | } |
195 | 195 | ||
196 | /** | 196 | /** |
197 | * Menambahkan IMSI pada list sender default | 197 | * Menambahkan IMSI pada list sender default |
198 | * | 198 | * |
199 | * @param {object} req - Express request object | 199 | * @param {object} req - Express request object |
200 | * @param {object} req.query - query string object | 200 | * @param {object} req.query - query string object |
201 | * @param {string} req.query.imsi - nomor imsi | 201 | * @param {string} req.query.imsi - nomor imsi |
202 | * @param {object} res - Express result object | 202 | * @param {object} res - Express result object |
203 | */ | 203 | */ |
204 | function pageAddForDefault(req, res, next) { | 204 | function pageAddForDefault(req, res, next) { |
205 | if (!req.query.imsi) { | 205 | if (!req.query.imsi) { |
206 | res.json({ | 206 | res.json({ |
207 | status: 'NOT-OK', | 207 | status: 'NOT-OK', |
208 | message: 'Undefined IMSI', | 208 | message: 'Undefined IMSI', |
209 | }); | 209 | }); |
210 | 210 | ||
211 | return; | 211 | return; |
212 | } | 212 | } |
213 | 213 | ||
214 | res.locals.add_imsi_success = addImsi(config.senders_imsi.default, req.query.imsi); | 214 | res.locals.add_imsi_success = addImsi(config.senders_imsi.default, req.query.imsi); |
215 | next(); | 215 | next(); |
216 | } | 216 | } |
217 | 217 | ||
218 | function pageDelForDefault(req, res) { | 218 | function pageDelForDefault(req, res) { |
219 | if (!req.query.imsi) { | 219 | if (!req.query.imsi) { |
220 | res.json({ | 220 | res.json({ |
221 | status: 'NOT-OK', | 221 | status: 'NOT-OK', |
222 | message: 'Undefined IMSI', | 222 | message: 'Undefined IMSI', |
223 | }); | 223 | }); |
224 | 224 | ||
225 | return; | 225 | return; |
226 | } | 226 | } |
227 | 227 | ||
228 | delImsi(config.senders_imsi.default, req.query.imsi); | 228 | delImsi(config.senders_imsi.default, req.query.imsi); |
229 | res.json({ | 229 | res.json({ |
230 | status: 'OK', | 230 | status: 'OK', |
231 | message: 'IMSI berhasil dihapus', | 231 | message: 'IMSI berhasil dihapus', |
232 | }); | 232 | }); |
233 | } | 233 | } |
234 | 234 | ||
235 | router.use(initConfig); | 235 | router.use(initConfig); |
236 | router.get('/', initConfig, pageIndex); | 236 | router.get('/', initConfig, pageIndex); |
237 | 237 | ||
238 | router.get('/add-for-prefix', pageAddForPrefix, addImsiResponse); | 238 | router.get('/add-for-prefix', pageAddForPrefix, addImsiResponse); |
239 | router.get('/add-for-unknown-prefix', pageAddForUnknownPrefix, addImsiResponse); | 239 | router.get('/add-for-unknown-prefix', pageAddForUnknownPrefix, addImsiResponse); |
240 | router.get('/add-for-default', pageAddForDefault, addImsiResponse) | 240 | router.get('/add-for-default', pageAddForDefault, addImsiResponse) |
241 | 241 | ||
242 | router.get('/del-for-prefix', pageDelForPrefix); | 242 | router.get('/del-for-prefix', pageDelForPrefix); |
243 | router.get('/del-for-unknown-prefix', pageDelForUnknownPrefix); | 243 | router.get('/del-for-unknown-prefix', pageDelForUnknownPrefix); |
244 | router.get('/del-for-default', pageDelForDefault); | 244 | router.get('/del-for-default', pageDelForDefault); |
245 | 245 |