Commit 208d90be354a49a2d9011ad2277b7d7ab5426bb5
1 parent
ba420757d3
Exists in
master
/config/senders add imsi
Showing 1 changed file with 115 additions and 2 deletions Inline Diff
lib/apiserver/router-config-senders.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | 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 | 8 | ||
8 | const router = express.Router(); | 9 | const router = express.Router(); |
9 | module.exports = router; | 10 | module.exports = router; |
10 | 11 | ||
12 | function saveConfig() { | ||
13 | fs.writeFile(global.KOMODO_SDK_CONFIG_FILENAME, JSON.stringify(config, null, 4), (err) => { | ||
14 | logger.warn(`APISERVER: ERROR writing config file. ${err.toString()}`); | ||
15 | }); | ||
16 | } | ||
17 | |||
11 | function initConfig(req, res, next) { | 18 | function initConfig(req, res, next) { |
12 | if (typeof config.senders_imsi !== 'object') { | 19 | if (typeof config.senders_imsi !== 'object') { |
13 | config.senders_imsi = { | 20 | config.senders_imsi = { |
14 | prefix_names: {}, | 21 | prefix_names: {}, |
15 | unknown_prefix: [], | 22 | unknown_prefix: [], |
16 | default: [], | 23 | default: [], |
17 | }; | 24 | }; |
18 | } | 25 | } |
19 | 26 | ||
20 | if (typeof config.senders_imsi.prefix_names !== 'object') { | 27 | if (typeof config.senders_imsi.prefix_names !== 'object') { |
21 | config.senders_imsi.prefix_names = {}; | 28 | config.senders_imsi.prefix_names = {}; |
22 | } | 29 | } |
23 | 30 | ||
24 | if (!Array.isArray(config.senders_imsi.unknown_prefix)) { | 31 | if (!Array.isArray(config.senders_imsi.unknown_prefix)) { |
25 | config.senders_imsi.unknown_prefix = []; | 32 | config.senders_imsi.unknown_prefix = []; |
26 | } | 33 | } |
27 | 34 | ||
28 | if (!Array.isArray(config.senders_imsi.default)) { | 35 | if (!Array.isArray(config.senders_imsi.default)) { |
29 | config.senders_imsi.default = []; | 36 | config.senders_imsi.default = []; |
30 | } | 37 | } |
31 | 38 | ||
32 | next(); | 39 | next(); |
33 | } | 40 | } |
34 | 41 | ||
35 | function pageIndex(req, res) { | 42 | function pageIndex(req, res) { |
36 | res.json(config.senders_imsi); | 43 | res.json(config.senders_imsi); |
37 | } | 44 | } |
38 | 45 | ||
39 | router.get('/', initConfig, pageIndex); | ||
46 | function addImsi(data, imsi) { | ||
47 | if (data.indexOf(imsi) >= 0) { | ||
48 | return false; | ||
49 | } | ||
50 | |||
51 | data.push(imsi); | ||
52 | saveConfig(); | ||
53 | |||
54 | return true; | ||
55 | } | ||
56 | |||
57 | function addImsiResponse(req, res) { | ||
58 | if (res.locals.add_imsi_success) { | ||
59 | res.json({ | ||
60 | status: 'NOT OK', | ||
61 | message: 'IMSI berhasil didaftarkan', | ||
62 | }); | ||
63 | } else { | ||
64 | res.json({ | ||
65 | status: 'NOT OK', | ||
66 | message: 'IMSI sudah terdaftar', | ||
67 | }); | ||
68 | } | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * Menambahkan IMSI pada list sender by prefix | ||
73 | * | ||
74 | * @param {object} req - Express request object | ||
75 | * @param {object} req.query - query string object | ||
76 | * @param {string} req.query.prefix - nama prefix | ||
77 | * @param {string} req.query.imsi - nomor imsi | ||
78 | * @param {object} res - Express result object | ||
79 | */ | ||
80 | function pageAddForPrefix(req, res, next) { | ||
81 | if (!req.query.prefix) { | ||
82 | res.json({ | ||
83 | status: 'NOT-OK', | ||
84 | message: 'Undefined prefix', | ||
85 | }); | ||
86 | |||
87 | return; | ||
88 | } | ||
89 | |||
90 | if (!req.query.imsi) { | ||
91 | res.json({ | ||
92 | status: 'NOT-OK', | ||
93 | message: 'Undefined IMSI', | ||
94 | }); | ||
95 | |||
96 | return; | ||
97 | } | ||
98 | |||
99 | res.locals.add_imsi_success = addImsi(config.senders_imsi.prefix_names[req.query.prefix], req.query.imsi); | ||
100 | next(); | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * Menambahkan IMSI pada list sender untuk prefix tidak dikenal | ||
105 | * | ||
106 | * @param {object} req - Express request object | ||
107 | * @param {object} req.query - query string object | ||
108 | * @param {string} req.query.imsi - nomor imsi | ||
109 | * @param {object} res - Express result object | ||
110 | */ | ||
111 | function pageAddForUnknownPrefix(req, res, next) { | ||
112 | if (!req.query.imsi) { | ||
113 | res.json({ | ||
114 | status: 'NOT-OK', | ||
115 | message: 'Undefined IMSI', | ||
116 | }); | ||
117 | |||
118 | return; | ||
119 | } | ||
120 | |||
121 | res.locals.add_imsi_success = addImsi(config.senders_imsi.unknown_prefix, req.query.imsi); | ||
122 | next(); | ||
123 | } | ||
124 | |||
125 | /** | ||
126 | * Menambahkan IMSI pada list sender default | ||
127 | * | ||
128 | * @param {object} req - Express request object | ||
129 | * @param {object} req.query - query string object | ||
130 | * @param {string} req.query.imsi - nomor imsi | ||
131 | * @param {object} res - Express result object | ||
132 | */ | ||
133 | function pageAddForDefault(req, res, next) { | ||
134 | if (!req.query.imsi) { | ||
135 | res.json({ | ||
136 | status: 'NOT-OK', | ||
137 | message: 'Undefined IMSI', | ||
138 | }); | ||
139 | |||
140 | return; | ||
141 | } | ||
142 | |||
143 | res.locals.add_imsi_success = addImsi(config.senders_imsi.default, req.query.imsi); | ||
144 | next(); | ||
145 | } | ||
146 | |||
147 | |||
148 | router.use(initConfig); | ||
149 | router.get('/', initConfig, pageIndex); | ||
150 | router.get('/add-for-prefix', pageAddForPrefix, addImsiResponse); | ||
151 | router.get('/add-for-unknown-prefix', pageAddForUnknownPrefix, addImsiResponse); | ||
152 | router.get('/add-for-default', pageAddForDefault, addImsiResponse) |