diff options
author | Taka Cho <takamune.cho@att.com> | 2019-05-14 17:37:24 -0400 |
---|---|---|
committer | Patrick Brady <patrick.brady@att.com> | 2019-05-15 09:09:18 -0700 |
commit | 18510891e2ebcaf6f139db704f83b4ba67f1c149 (patch) | |
tree | ed791538f943af79437a3650912c30b8b7af97b1 /src/app/ndserver.js | |
parent | a68a9dac11d95ef07d480c6ff7c7e6e8cbb20d7c (diff) |
add node.js api server for CDT
/api call need node.js api server
to fix when clicking the Synchronize
Definition Parameter.
Change-Id: I4a3fd1ba045ed41fb2fdfec3b8f0364cd6ec05f5
Issue-ID: APPC-1600
Signed-off-by: Taka Cho <takamune.cho@att.com>
Diffstat (limited to 'src/app/ndserver.js')
-rw-r--r-- | src/app/ndserver.js | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/src/app/ndserver.js b/src/app/ndserver.js new file mode 100644 index 0000000..5bbf0da --- /dev/null +++ b/src/app/ndserver.js @@ -0,0 +1,255 @@ +/* +============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 fs = require('fs'); + +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 ); +}); + |