Commit 6e61afe0ff557c9ef3f023c4c6396151579bb8ea

Authored by Adhidarma Hadiwinoto
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