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