Commit 03390ce7bccc0bb6b6df0b6b568ff260f1e54250

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