Commit dabbcb087ea1c360a2305a739b07e94c3ddc57fa

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