diff --git a/app.js b/app.js index 5dea9b4..3f5123b 100644 --- a/app.js +++ b/app.js @@ -102,10 +102,6 @@ app.use( function( req, res, next ) { const apiUrlPrefix = conf.get('apiUrlPrefix'); const appPort = conf.get('appPort'); -// load controllers -let mongoQuery = require('./controllers/mongo-db/index'); -app.use('/mongo', mongoQuery); - let preference = require('./controllers/preference/index'); app.use(apiUrlPrefix+'/preference', preference); diff --git a/controllers/login/login.js b/controllers/login/login.js deleted file mode 100644 index e048968..0000000 --- a/controllers/login/login.js +++ /dev/null @@ -1,89 +0,0 @@ -const express = require('express'); -const router = express.Router(); -const sendRequest = require('utils/send-request'); -const sendResponse = require('utils/send-response'); -const validate = require('utils/validator'); -//const passport = require('utils/passport-func')(); -const conf = require('utils/config'); - -let logoutRedirectUrl; - - -module.exports = function(passport) { - - switch(conf.get('passport.strategy')) { - case "local": - console.log('passport local routes'); - logoutRedirectUrl = conf.get('passport.routes.local.logoutRedirectUrl'); - - router.get('/login', (req, res) => { - res.redirect(conf.get('passport.routes.local.loginPageUrl')); - }); - - router.post('/login', passport.authenticate('local', { failureFlash: true }), (req, res) => { - // this function runs if success - console.log('post login'); - req.session.regenerate(function(err) { - if (err) { - res.json(err); - } - }); - console.log('Login success... returning user in json'); - res.json(req.user); - }); - - break; - - case "saml": - - logoutRedirectUrl = conf.get('passport.routes.saml.logoutRedirectUrl'); - - router.get('/login', - passport.authenticate('saml', - { - successRedirect: '/', - failureRedirect: '/login' - }) - ); - - router.post(conf.get('passport.configStrategy.saml.path'), - passport.authenticate('saml', - { - failureRedirect: '/', - failureFlash: false - }), - (req, res) => { - // code to get user permission - console.log(req.user); - // redirect to dashboard - res.redirect('http://localhost:4200'); - } - ); - - break; - - default: - logoutRedirectUrl = '/'; - } - - router.get('/loggedin', (req, res) => { - if (req.isUnauthenticated()) { - console.log('GET /loggedin not authenticated'); - return res.json({ error: 'not logged in'}); - } else { - console.log('authenticated'); - console.log('GET /loggedin ' + req.session.id); - return res.json(req.user); - } - }); - - router.get('/logout', (req, res) => { - console.log('User logged out.'); - req.session.destroy(); - req.logout(); - res.redirect(logoutRedirectUrl); - }); - - - return router; -}; diff --git a/controllers/mongo-db/index.js b/controllers/mongo-db/index.js deleted file mode 100644 index 1bf73ac..0000000 --- a/controllers/mongo-db/index.js +++ /dev/null @@ -1,9 +0,0 @@ -let express = require('express'); -let router = express.Router(); - -// load controllers -const queryCtrl = require('./query'); - -router.use('/query', queryCtrl); - -module.exports = router; \ No newline at end of file diff --git a/controllers/mongo-db/mongoConnect.js b/controllers/mongo-db/mongoConnect.js deleted file mode 100644 index 3a0170e..0000000 --- a/controllers/mongo-db/mongoConnect.js +++ /dev/null @@ -1,57 +0,0 @@ -const logger = require('../../utils/request-logger'); -var MongoClient = require('mongodb').MongoClient; -var url = "mongodb://10.1.2.155:27017/"; -const database = "spw" - -var connection = {}; - -connection.reqMongo = async function (req, query, collection) { - - console.log(req.id) - - var result = await mongoReq(req, query, collection); - - return result; -} - - -function mongoReq(req, query, collection){ - - logger.logSqlQuery({id : "session", reqId : req.id}, query); - - return new Promise((resolve, reject) => { - MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) { - if (err) { - console.log(err) - logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg); - resolve({ - resultCode : "50001", - message : err.errmsg - }); - } - - var dbo = db.db(database); - dbo.collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) { - db.close(); - - if (err) { - console.log(err) - logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg); - resolve({ - resultCode : "50001", - message : err.errmsg - }); - } - logger.logSqlResult({id : "session", reqId : req.id}, result); - resolve({ - resultCode : "20000", - resultDescription : "Success", - resultData : result - }); - }); - }); - }); -} - - -module.exports = connection; \ No newline at end of file diff --git a/controllers/mongo-db/query.js b/controllers/mongo-db/query.js deleted file mode 100644 index de45e5a..0000000 --- a/controllers/mongo-db/query.js +++ /dev/null @@ -1,34 +0,0 @@ -let express = require('express'); -let router = express.Router(); -let connection = require("./mongoConnect.js") -var parseFilter = require('ldapjs').parseFilter; -let utils = require('../../utils/utils') - -router.get('/',async function (req, res) { - - var filter = parseFilter(req.query.filter) - - // var objectData = Object.assign(req.query,req.params); - // var filter = utils.getUpdateFilter(objectData); - - var query = await utils.getQuery(filter); - console.log(query) - - // var query = Object.assign(req.params, req.query); - var result = await connection.reqMongo(req, query, 'config') - res.status(200).send(result); -}); - -router.post('/', (req, res) => { - res.send('POST Query'); -}); - -router.put('/', (req, res) => { - res.send('PUT Query'); -}); - -router.delete('/', (req, res) => { - res.send('DELETE Query'); -}); - -module.exports = router; diff --git a/controllers/preference/index.js b/controllers/preference/index.js index 20fa492..0a25770 100644 --- a/controllers/preference/index.js +++ b/controllers/preference/index.js @@ -1,12 +1,13 @@ let express = require('express'); let router = express.Router(); let connection = require("../../utils/mongoDB") +var utils = require('../../utils/utils'); router.get('/:collection',async function (req, res) { var query = Object.assign(req.params, req.query); - console.log(query); - var result = await connection.reqMongo(req,req.method,query,req.params.collection) + var filter = await utils.getQueryFilter(query.filter); + var result = await connection.reqMongo(req,req.method,filter,req.params.collection) res.status(200).json(result); diff --git a/controllers/sale-area/index.js b/controllers/sale-area/index.js deleted file mode 100644 index 8a61310..0000000 --- a/controllers/sale-area/index.js +++ /dev/null @@ -1,15 +0,0 @@ -let express = require('express'); -let router = express.Router(); - -// load controllers -const saleAreaCtrl = require('./sale-area'); -const mappingRegionCtrl = require('./mapping-region'); -const provinceCtrl = require('./province'); -const mappingDistributionCtrl= require('./mapping-distribution'); - -router.use('/sale-area', saleAreaCtrl); -router.use('/mapping-region', mappingRegionCtrl); -router.use('/province', provinceCtrl); -router.use('/mapping-distribution', mappingDistributionCtrl); - -module.exports = router; \ No newline at end of file diff --git a/controllers/sale-area/mapping-distribution.js b/controllers/sale-area/mapping-distribution.js deleted file mode 100644 index 257475e..0000000 --- a/controllers/sale-area/mapping-distribution.js +++ /dev/null @@ -1,20 +0,0 @@ -let express = require('express'); -let router = express.Router(); - -router.get('/', (req, res) => { - res.send('GET Mapping Distribution'); -}); - -router.post('/', (req, res) => { - res.send('POST Mapping Distribution'); -}); - -router.put('/', (req, res) => { - res.send('PUT Mapping Distribution'); -}); - -router.delete('/', (req, res) => { - res.send('DELETE Mapping Distribution'); -}); - -module.exports = router; diff --git a/controllers/sale-area/mapping-region.js b/controllers/sale-area/mapping-region.js deleted file mode 100644 index 7a780b8..0000000 --- a/controllers/sale-area/mapping-region.js +++ /dev/null @@ -1,20 +0,0 @@ -let express = require('express'); -let router = express.Router(); - -router.get('/', (req, res) => { - res.send('GET Mapping Region'); -}); - -router.post('/', (req, res) => { - res.send('POST Mapping Region'); -}); - -router.put('/', (req, res) => { - res.send('PUT Mapping Region'); -}); - -router.delete('/', (req, res) => { - res.send('DELETE Mapping Region'); -}); - -module.exports = router; diff --git a/controllers/sale-area/province.js b/controllers/sale-area/province.js deleted file mode 100644 index a2d59f0..0000000 --- a/controllers/sale-area/province.js +++ /dev/null @@ -1,20 +0,0 @@ -let express = require('express'); -let router = express.Router(); - -router.get('/', (req, res) => { - res.send('GET Province'); -}); - -router.post('/', (req, res) => { - res.send('POST Province'); -}); - -router.put('/', (req, res) => { - res.send('PUT Province'); -}); - -router.delete('/', (req, res) => { - res.send('DELETE Province'); -}); - -module.exports = router; diff --git a/controllers/sale-area/sale-area.js b/controllers/sale-area/sale-area.js deleted file mode 100644 index bfd8674..0000000 --- a/controllers/sale-area/sale-area.js +++ /dev/null @@ -1,93 +0,0 @@ -const express = require('express'); -const router = express.Router(); -const sendRequest = require('utils/send-request'); -const sendResponse = require('utils/send-response'); -const validate = require('utils/validator'); - -const conf = require('utils/config'); - - -const timeout = conf.get('requestTimeout'); - -router.get('/', async (req, res) => { - // get input (req.params, req.query, req.body) - console.log('GET'); - let data = req.body; - let rules = {}; - // validate input, handle error - // validate(data, rules) - // .then(() => { - // // logic - // return sendRequest.get('http://127.0.0.1/', timeout, req.session); - // }) - // .then((response) => { - // console.log('res = ' + response); - // res.send('GET Sale Area'); - // }) - // .catch((error) => { - // console.log('catch ' + error); - // if (error instanceof ValidationError) { - // let response = sendResponse.missingOrInvalidResponse(error.instance[0].message); - // res.status(403); - // res.json(response); - // } else if (error instanceof UnirestError) { - // console.log('hey'); - // res.status(500); - // res.send(error.instance.message); - // } else { - // res.status(501); - // res.send(error); - // } - // }); - try { - await validate(data, rules); - let response = await sendRequest.get('http://127.0.0.1/', timeout, req.session); - console.log('res = ' + response); - res.send('GET Sale Area'); - } - catch(error) { - let errResponse = sendResponse.handleError(error); - res.status(errResponse.code); - res.send(errResponse.object); - } -}); - - - -router.post('/', (req, res) => { - // get input (req.params, req.query, req.body) - let data = req.body; - let rules = {}; - // validate input, handle error - indicative.validate(data, rules) - .then(() => { - // logic - sendRequest.post('http://10.1.2.155:3738/api/heroes', timeout, req.session, data) - .then((response) => { - console.log(response.body); - res.send('POST Sale Area'); - }) - .catch((error) => { - console.log(error); - res.status(500); - res.send('Error POST Sale Area'); - }); - }) - .catch((error) => { - let response = sendResponse.missingOrInvalidResponse(error.message); - res.status(403); - res.json(response); - }); -}); - -router.put('/', (req, res) => { - res.send('PUT Sale Area'); -}); - -router.delete('/', (req, res) => { - res.send('DELETE Sale Area'); -}); - - - -module.exports = router; diff --git a/logs/app.log b/logs/app.log index 5bec12d..1f997c5 100644 --- a/logs/app.log +++ b/logs/app.log @@ -12,3 +12,9 @@ {"message":"phoenix-partner - :: ## - session - a78f627a-aef2-477a-ac52-d144167170f1 ## BE Receive SQL Result: [{\"table\":\"get_spwHashtags\",\"value\":\"bbb\"}]","level":"info"} {"message":"phoenix-partner - :: ## - session - 85a0f68c-6543-4db9-9bb3-8f25a6597cb0 ## BE Send SQL Query: {\"table\":\"get_spwHashtags\"}","level":"info"} {"message":"phoenix-partner - :: ## - session - 85a0f68c-6543-4db9-9bb3-8f25a6597cb0 ## BE Receive SQL Result: [{\"table\":\"get_spwHashtags\",\"value\":\"bbb\"}]","level":"info"} +{"message":"phoenix-partner - :: ## - session - 24b3d4de-356c-4bd4-a07b-c419a0466f57 ## BE Send SQL Query: {\"collection\":\"general\",\"filter\":\"(&(companyName=โรงพยาบาลเปาโล พหลโยธิน))\",\"fields\":\"companyName\"}","level":"info"} +{"message":"phoenix-partner - :: ## - session - 24b3d4de-356c-4bd4-a07b-c419a0466f57 ## BE Receive SQL Result: []","level":"info"} +{"message":"phoenix-partner - :: ## - session - 3a1fad66-0e0f-4499-848e-ac5dae13ba7f ## BE Send SQL Query: {\"companyName\":{}}","level":"info"} +{"message":"phoenix-partner - :: ## - session - 3a1fad66-0e0f-4499-848e-ac5dae13ba7f ## BE Receive SQL Result: []","level":"info"} +{"message":"phoenix-partner - :: ## - session - 330610bf-2f1f-4f45-a7b5-5a4d686eab52 ## BE Send SQL Query: {\"companyName\":\"โรงพยาบาลเปาโล พหลโยธิน\"}","level":"info"} +{"message":"phoenix-partner - :: ## - session - 330610bf-2f1f-4f45-a7b5-5a4d686eab52 ## BE Receive SQL Result: []","level":"info"} diff --git a/package-lock.json b/package-lock.json index 402d1ad..64d7327 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,8 +99,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "optional": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -172,12 +171,16 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "optional": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, "bson": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", @@ -319,8 +322,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "optional": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "connect-flash": { "version": "0.1.1", @@ -762,6 +764,11 @@ "path-is-absolute": "1.0.1" } }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + }, "har-validator": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", @@ -864,7 +871,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "optional": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -1139,7 +1145,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "optional": true, "requires": { "brace-expansion": "1.1.11" } @@ -1387,8 +1392,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-to-regexp": { "version": "0.1.7", @@ -1614,6 +1618,21 @@ "optional": true, "requires": { "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } } }, "safe-buffer": { diff --git a/package.json b/package.json index 776ff3c..0c15f49 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "", "main": "app.js", "scripts": { - "test" : "mocha unitTest", - "start" : "npm run test && node app.js" + "test": "mocha unitTest", + "start": "npm run test && node app.js" }, "author": "Source Code", "license": "ISC", diff --git a/utils/utils.js b/utils/utils.js index 32ef64a..c722704 100644 --- a/utils/utils.js +++ b/utils/utils.js @@ -1,6 +1,6 @@ +var parseFilter = require('ldapjs').parseFilter; - -utils = {}; +var utils = {}; utils.findQueryString = function(req) @@ -57,7 +57,14 @@ utils.getUpdateFilter = function(obj) return obj; } -utils.getQuery = async function(data,query){ +utils.getQueryFilter = async function(data) +{ + var filter = parseFilter(data); + return getQuery(filter); +} + +getQuery = async function(data,query){ + if(!query) var query = {}; //type !(xx) connot be use @@ -94,7 +101,7 @@ utils.getQuery = async function(data,query){ break; default : // query += temFilter[i].attribute +" "+ operate +" "+ temFilter[i].value; - var regexValue = new RegExp(temFilter[i].value,"g") + var regexValue = temFilter[i].value; if(data.type == 'or'){ var objOr = {} var attribute = temFilter[i].attribute; -- libgit2 0.21.2