aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/ndserver.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/ndserver.js')
-rw-r--r--src/app/ndserver.js253
1 files changed, 253 insertions, 0 deletions
diff --git a/src/app/ndserver.js b/src/app/ndserver.js
new file mode 100644
index 0000000..0826740
--- /dev/null
+++ b/src/app/ndserver.js
@@ -0,0 +1,253 @@
+/*
+============LICENSE_START==========================================
+===================================================================
+Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================ */
+var express = require('express');
+var app = express();
+var https = require('https');
+var fs = require('fs');
+
+const options = {
+ key: fs.readFileSync(process.env.HTTPS_KEY_FILE),
+ cert: fs.readFileSync(process.env.HTTPS_CERT_FILE)
+};
+
+var bodyParser = require('body-parser');
+var textParser = bodyParser.text({ type: 'text/*' });
+
+const path = require('path');
+
+const PORT = process.env.PORT || 8080;
+const CDT_HOME= process.env.CDT_HOME;
+const LOG_DIR= process.env.LOG_DIR;
+const MaxLogSize= process.env.MaxLogSize || 3000000;
+//const DIST_FOLDER = path.join(process.cwd(), 'dist');
+//const DIST_FOLDER = path.join( CDT_HOME, 'dist');
+const LogF = path.join( LOG_DIR, 'ndserver.log' );
+
+var chproc = require("child_process");
+
+//var serverDataSvc = require('./dist/server-data-svc');
+var serverDataSvc = require('./server-data-svc');
+var logger = require('./srvlogger');
+
+app.get('/getUserRole*', (req, res) => {
+ console.log(`get: Start: /getUserRole/* route...`);
+ logger.addLog("get: Start: /getUserRole/* route...\n",LogF);
+ if( CDT_HOME != null ) {
+ logger.addLog("get: CDT_HOME:["+CDT_HOME+"]\n",LogF);
+ };
+ var respData= serverDataSvc.getUserRoles( req.url );
+ logger.addLog("get: /getUserRole/*: typeof response:["+
+ (typeof respData)+"]\n",LogF);
+
+ logger.addLog("get: /getUserRole/*: stringify respData:["+
+ JSON.stringify(respData).substr(0,300)+"...]\n",LogF);
+ if( respData.length != null && respData.length != undefined ) {
+ logger.addLog("get: /getUserRole/*: respData.length="+
+ respData.length+"\n",LogF);
+ } else {
+ logger.addLog("get: /getUserRole/*: respData.length not defined !\n",LogF);
+ };
+ res.status(200).send( respData );
+ let timeStamp = new Date().toISOString();
+ logger.addLog("get: done: timeStamp:["+timeStamp+"]\n",LogF);
+});
+
+app.get('/api/*', (req, res) => {
+ console.log(`get: Start: /api/* route...`);
+ logger.addLog("get: Start: /api/* route...\n",LogF);
+ if( req.url == null ) {
+ console.log("get: /api/*: req.url is null !");
+ logger.addLog("get: /api/*: req.url is null !\n",LogF);
+ }
+ else {
+ // console.log("get: /api/*: req.url:["+ req.url+"]");
+ logger.addLog("get: /api/*: req.url:["+ req.url+"]\n",LogF);
+ };
+ if( req.hostname == null ) {
+ console.log("get: /api/*: req.hostname is null !");
+ logger.addLog("get: /api/*: req.hostname is null !\n",LogF);
+ }
+ else {
+ // console.log("get: /api/*: req.hostname:["+ req.hostname+"]");
+ logger.addLog("get: /api/*: req.hostname:["+ req.hostname+"]\n",LogF);
+ };
+ if( req.params != null ) {
+ // console.log("get: /api/*: Have req.params ...");
+ logger.addLog("get: /api/*: Have req.params ...\n",LogF);
+ if( req.params.length != null ) {
+ // console.log("get: /api/*: req.params.length="+req.params.length );
+ logger.addLog("get: /api/*: req.params.length="+req.params.length+"\n",LogF);
+ }
+ };
+ if( req.socket != null ) {
+ // console.log("get: /api/*: Have req.socket ...");
+ logger.addLog("get: /api/*: Have req.socket ...\n",LogF);
+ if( req.socket.remoteAddress != null ) {
+ // console.log("get: /api/*: remoteAddress:["+ req.socket.remoteAddress+"]");
+ logger.addLog(
+ "get: /api/*: remoteAddress:["+ req.socket.remoteAddress+"]\n",LogF);
+ }
+ else {
+ console.log("get: /api/*: req.socket.remoteAddress is null !");
+ logger.addLog("get: /api/*: req.socket.remoteAddress is null !\n",LogF);
+ }
+ };
+ if( CDT_HOME != null ) {
+ logger.addLog("get: CDT_HOME:["+CDT_HOME+"]\n",LogF);
+ };
+ var respData= serverDataSvc.getData( req.url );
+ logger.addLog("get: /api/*: typeof response:["+(typeof respData)+"]\n",LogF);
+ if( typeof respData == "string" ) {
+ logger.addLog("get: /api/*: respData:length="+respData.length+"\n",LogF);
+ };
+ logger.addLog("get: /api/*: stringify respData:["+
+ JSON.stringify(respData).substr(0,300)+"...]\n",LogF);
+ if( respData.length != null && respData.length != undefined ) {
+ logger.addLog("get: /api/*: respData.length="+respData.length+"\n",LogF);
+ } else {
+ logger.addLog("get: /api/*: respData.length not defined !\n",LogF);
+ };
+ res.status(200).send( respData );
+ let timeStamp = new Date().toISOString();
+ logger.addLog("get: /api/* done: timeStamp:["+timeStamp+"]\n\n",LogF);
+});
+
+app.post('/api/*', textParser, (req, res) => {
+ console.log(`post: Start: /api/* route...`);
+ logger.addLog("post: Start: /api/* route...\n",LogF);
+ let timeStamp = new Date().toISOString();
+ logger.addLog("post: /api/*: timeStamp:["+timeStamp+"]\n\n",LogF);
+ if( req.url == null ) {
+ console.log("post: /api/*: req.url is null !");
+ logger.addLog("post: /api/*: req.url is null !\n",LogF);
+ }
+ else {
+ console.log("post: /api/*: req.url:["+ req.url+"]");
+ logger.addLog("post: /api/*: req.url:["+ req.url+"]\n",LogF);
+ };
+ if( req.body == null ) {
+ console.log("post: /api/*: req.body is null !");
+ }
+ else {
+ console.log("post: /api/*: req.body.length="+req.body.length );
+ };
+ if( req.headers != null ) {
+ console.log("post: /api/*: req.headers.length="+ req.headers.length );
+ };
+ var remAddr= '';
+ if( req.socket != null ) {
+ console.log("post: /api/*: Have req.socket ...");
+ logger.addLog("post: /api/*: Have req.socket ...\n",LogF);
+ if( req.socket.remoteAddress != null ) {
+ logger.addLog(
+ "post: /api/*: remoteAddress:["+ req.socket.remoteAddress+"]\n",LogF);
+ remAddr= req.socket.remoteAddress;
+ }
+ else {
+ console.log("post: /api/*: req.socket.remoteAddress is null !");
+ logger.addLog("post: /api/*: req.socket.remoteAddress is null !\n",LogF);
+ }
+ };
+ logger.addLog(
+ "post: /api/*: req.params:["+JSON.stringify(req.params)+"]\n",LogF);
+ //.. checking url
+ var rexpLR= new RegExp(/\/api\/post_logrec/);
+ var matchLR= rexpLR.exec( req.url );
+ var rspData= 'r_undef';
+ if( matchLR ) {
+ //.. posting server-side log record
+ logger.addLog("post: /api/*: start postLog: remAddr:["+remAddr+"]\n",LogF);
+ rspData= serverDataSvc.postSrvLogRec( req.url, req.body, remAddr );
+ logger.addLog("post: /api/*: to send: response:["+rspData+"]\n",LogF);
+ }
+ else { //.. process data request
+ logger.addLog("post: /api/*: start procReq: remAddr:["+remAddr+"]\n",LogF);
+ rspData= serverDataSvc.procReq( req.url, req.body, remAddr );
+ logger.addLog("post: /api/*: to send: response:["+rspData+"]\n",LogF);
+ var rspObj= JSON.parse(rspData);
+ if( rspObj.respStr != null && rspObj.respStr != undefined ) {
+ var respStrLen= rspObj.respStr.length;
+ logger.addLog("post: /api/*: respStr length="+respStrLen+"\n",LogF);
+ if( respStrLen < 60 ) {
+ logger.addLog("post: /api/*: rspObj.respStr:["+rspObj.respStr+"]\n",LogF);
+ } else {
+ logger.addLog("post: /api/*: rspObj.respStr(part):["+
+ rspObj.respStr.substr(0,60)+"]\n",LogF);
+ }
+ }
+ }
+ res.status(200).send( rspData );
+ timeStamp = new Date().toISOString();
+ logger.addLog("post: done: timeStamp:["+timeStamp+"]\n\n",LogF);
+});
+
+//.. express.static to serve static files from /browser
+//app.get('*.*', express.static(DIST_FOLDER) );
+app.get('*.*', express.static(CDT_HOME) );
+
+// All regular routes use the Universal engine
+app.get('*', (req, res) => {
+ console.log(`get: Start: regular route...`);
+ logger.addLog("get: * Start: regular route...\n",LogF);
+ if( req.url == null ) {
+ console.log("get: req.url is null !");
+ logger.addLog("get: * regular route req.url is null !\n",LogF);
+ }
+ else {
+ console.log("get: req.url:["+ req.url+"]");
+ logger.addLog("get: * regular route: req.url:["+ req.url+"]\n",LogF);
+ };
+ if( CDT_HOME != null ) {
+ logger.addLog("get: * CDT_HOME:["+CDT_HOME+"]\n",LogF);
+ };
+ if( req.socket != null ) {
+ logger.addLog("get: * Have req.socket ...\n",LogF);
+ if( req.socket.remoteAddress != null ) {
+ logger.addLog(
+ "get: *: remoteAddress:["+ req.socket.remoteAddress+"]\n",LogF);
+ }
+ else {
+ logger.addLog("get: *: req.socket.remoteAddress is null !\n",LogF);
+ }
+ };
+ var respData= serverDataSvc.getData( req.url );
+ logger.addLog("get: *: typeof response:["+(typeof respData)+"]\n",LogF);
+ if( typeof respData == "string" ) {
+ logger.addLog("get: *: respData:length="+respData.length+"\n",LogF);
+ };
+ // logger.addLog("get: *: respData:["+JSON.stringify(respData)+"]\n",LogF);
+ res.status(200).send( respData );
+ let timeStamp = new Date().toISOString();
+ logger.addLog("get: * done: timeStamp:["+timeStamp+"]\n\n",LogF);
+});
+
+// Start up the Node server
+https.createServer(options,app).listen(PORT, () => {
+ console.log(`Node server: CDT_HOME:[${CDT_HOME}]`);
+ console.log(`Node server: LOG_DIR:[${LOG_DIR}]`);
+ console.log(`Node server: opening Log in the file:[${LogF}]`);
+ console.log(`Node server listening on http://localhost:${PORT}`);
+ // console.log(" DIST_FOLDER:["+DIST_FOLDER+"]");
+ logger.setMaxLogSize( MaxLogSize );
+ logger.addLog("\n Node server: start: CDT_HOME:["+CDT_HOME+"]\n",LogF);
+ serverDataSvc.setHomeDir( CDT_HOME, LOG_DIR );
+});
+