Commit 208d90be354a49a2d9011ad2277b7d7ab5426bb5

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