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