Commit e57c30aedacf86ae05eab6238212a0680f29afca

Authored by sumatek
1 parent 49559b6c
Exists in master

update get

app.js
... ... @@ -102,10 +102,6 @@ app.use( function( req, res, next ) {
102 102 const apiUrlPrefix = conf.get('apiUrlPrefix');
103 103 const appPort = conf.get('appPort');
104 104  
105   -// load controllers
106   -let mongoQuery = require('./controllers/mongo-db/index');
107   -app.use('/mongo', mongoQuery);
108   -
109 105 let preference = require('./controllers/preference/index');
110 106 app.use(apiUrlPrefix+'/preference', preference);
111 107  
... ...
controllers/login/login.js
... ... @@ -1,89 +0,0 @@
1   -const express = require('express');
2   -const router = express.Router();
3   -const sendRequest = require('utils/send-request');
4   -const sendResponse = require('utils/send-response');
5   -const validate = require('utils/validator');
6   -//const passport = require('utils/passport-func')();
7   -const conf = require('utils/config');
8   -
9   -let logoutRedirectUrl;
10   -
11   -
12   -module.exports = function(passport) {
13   -
14   - switch(conf.get('passport.strategy')) {
15   - case "local":
16   - console.log('passport local routes');
17   - logoutRedirectUrl = conf.get('passport.routes.local.logoutRedirectUrl');
18   -
19   - router.get('/login', (req, res) => {
20   - res.redirect(conf.get('passport.routes.local.loginPageUrl'));
21   - });
22   -
23   - router.post('/login', passport.authenticate('local', { failureFlash: true }), (req, res) => {
24   - // this function runs if success
25   - console.log('post login');
26   - req.session.regenerate(function(err) {
27   - if (err) {
28   - res.json(err);
29   - }
30   - });
31   - console.log('Login success... returning user in json');
32   - res.json(req.user);
33   - });
34   -
35   - break;
36   -
37   - case "saml":
38   -
39   - logoutRedirectUrl = conf.get('passport.routes.saml.logoutRedirectUrl');
40   -
41   - router.get('/login',
42   - passport.authenticate('saml',
43   - {
44   - successRedirect: '/',
45   - failureRedirect: '/login'
46   - })
47   - );
48   -
49   - router.post(conf.get('passport.configStrategy.saml.path'),
50   - passport.authenticate('saml',
51   - {
52   - failureRedirect: '/',
53   - failureFlash: false
54   - }),
55   - (req, res) => {
56   - // code to get user permission
57   - console.log(req.user);
58   - // redirect to dashboard
59   - res.redirect('http://localhost:4200');
60   - }
61   - );
62   -
63   - break;
64   -
65   - default:
66   - logoutRedirectUrl = '/';
67   - }
68   -
69   - router.get('/loggedin', (req, res) => {
70   - if (req.isUnauthenticated()) {
71   - console.log('GET /loggedin not authenticated');
72   - return res.json({ error: 'not logged in'});
73   - } else {
74   - console.log('authenticated');
75   - console.log('GET /loggedin ' + req.session.id);
76   - return res.json(req.user);
77   - }
78   - });
79   -
80   - router.get('/logout', (req, res) => {
81   - console.log('User logged out.');
82   - req.session.destroy();
83   - req.logout();
84   - res.redirect(logoutRedirectUrl);
85   - });
86   -
87   -
88   - return router;
89   -};
controllers/mongo-db/index.js
... ... @@ -1,9 +0,0 @@
1   -let express = require('express');
2   -let router = express.Router();
3   -
4   -// load controllers
5   -const queryCtrl = require('./query');
6   -
7   -router.use('/query', queryCtrl);
8   -
9   -module.exports = router;
10 0 \ No newline at end of file
controllers/mongo-db/mongoConnect.js
... ... @@ -1,57 +0,0 @@
1   -const logger = require('../../utils/request-logger');
2   -var MongoClient = require('mongodb').MongoClient;
3   -var url = "mongodb://10.1.2.155:27017/";
4   -const database = "spw"
5   -
6   -var connection = {};
7   -
8   -connection.reqMongo = async function (req, query, collection) {
9   -
10   - console.log(req.id)
11   -
12   - var result = await mongoReq(req, query, collection);
13   -
14   - return result;
15   -}
16   -
17   -
18   -function mongoReq(req, query, collection){
19   -
20   - logger.logSqlQuery({id : "session", reqId : req.id}, query);
21   -
22   - return new Promise((resolve, reject) => {
23   - MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
24   - if (err) {
25   - console.log(err)
26   - logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg);
27   - resolve({
28   - resultCode : "50001",
29   - message : err.errmsg
30   - });
31   - }
32   -
33   - var dbo = db.db(database);
34   - dbo.collection(collection).find(query, { projection: { _id: 0 } }).toArray(function(err, result) {
35   - db.close();
36   -
37   - if (err) {
38   - console.log(err)
39   - logger.logSqlResult({id : "session", reqId : req.id}, err.errmsg);
40   - resolve({
41   - resultCode : "50001",
42   - message : err.errmsg
43   - });
44   - }
45   - logger.logSqlResult({id : "session", reqId : req.id}, result);
46   - resolve({
47   - resultCode : "20000",
48   - resultDescription : "Success",
49   - resultData : result
50   - });
51   - });
52   - });
53   - });
54   -}
55   -
56   -
57   -module.exports = connection;
58 0 \ No newline at end of file
controllers/mongo-db/query.js
... ... @@ -1,34 +0,0 @@
1   -let express = require('express');
2   -let router = express.Router();
3   -let connection = require("./mongoConnect.js")
4   -var parseFilter = require('ldapjs').parseFilter;
5   -let utils = require('../../utils/utils')
6   -
7   -router.get('/',async function (req, res) {
8   -
9   - var filter = parseFilter(req.query.filter)
10   -
11   - // var objectData = Object.assign(req.query,req.params);
12   - // var filter = utils.getUpdateFilter(objectData);
13   -
14   - var query = await utils.getQuery(filter);
15   - console.log(query)
16   -
17   - // var query = Object.assign(req.params, req.query);
18   - var result = await connection.reqMongo(req, query, 'config')
19   - res.status(200).send(result);
20   -});
21   -
22   -router.post('/', (req, res) => {
23   - res.send('POST Query');
24   -});
25   -
26   -router.put('/', (req, res) => {
27   - res.send('PUT Query');
28   -});
29   -
30   -router.delete('/', (req, res) => {
31   - res.send('DELETE Query');
32   -});
33   -
34   -module.exports = router;
controllers/preference/index.js
1 1 let express = require('express');
2 2 let router = express.Router();
3 3 let connection = require("../../utils/mongoDB")
  4 +var utils = require('../../utils/utils');
4 5  
5 6  
6 7 router.get('/:collection',async function (req, res) {
7 8 var query = Object.assign(req.params, req.query);
8   - console.log(query);
9   - var result = await connection.reqMongo(req,req.method,query,req.params.collection)
  9 + var filter = await utils.getQueryFilter(query.filter);
  10 + var result = await connection.reqMongo(req,req.method,filter,req.params.collection)
10 11 res.status(200).json(result);
11 12  
12 13  
... ...
controllers/sale-area/index.js
... ... @@ -1,15 +0,0 @@
1   -let express = require('express');
2   -let router = express.Router();
3   -
4   -// load controllers
5   -const saleAreaCtrl = require('./sale-area');
6   -const mappingRegionCtrl = require('./mapping-region');
7   -const provinceCtrl = require('./province');
8   -const mappingDistributionCtrl= require('./mapping-distribution');
9   -
10   -router.use('/sale-area', saleAreaCtrl);
11   -router.use('/mapping-region', mappingRegionCtrl);
12   -router.use('/province', provinceCtrl);
13   -router.use('/mapping-distribution', mappingDistributionCtrl);
14   -
15   -module.exports = router;
16 0 \ No newline at end of file
controllers/sale-area/mapping-distribution.js
... ... @@ -1,20 +0,0 @@
1   -let express = require('express');
2   -let router = express.Router();
3   -
4   -router.get('/', (req, res) => {
5   - res.send('GET Mapping Distribution');
6   -});
7   -
8   -router.post('/', (req, res) => {
9   - res.send('POST Mapping Distribution');
10   -});
11   -
12   -router.put('/', (req, res) => {
13   - res.send('PUT Mapping Distribution');
14   -});
15   -
16   -router.delete('/', (req, res) => {
17   - res.send('DELETE Mapping Distribution');
18   -});
19   -
20   -module.exports = router;
controllers/sale-area/mapping-region.js
... ... @@ -1,20 +0,0 @@
1   -let express = require('express');
2   -let router = express.Router();
3   -
4   -router.get('/', (req, res) => {
5   - res.send('GET Mapping Region');
6   -});
7   -
8   -router.post('/', (req, res) => {
9   - res.send('POST Mapping Region');
10   -});
11   -
12   -router.put('/', (req, res) => {
13   - res.send('PUT Mapping Region');
14   -});
15   -
16   -router.delete('/', (req, res) => {
17   - res.send('DELETE Mapping Region');
18   -});
19   -
20   -module.exports = router;
controllers/sale-area/province.js
... ... @@ -1,20 +0,0 @@
1   -let express = require('express');
2   -let router = express.Router();
3   -
4   -router.get('/', (req, res) => {
5   - res.send('GET Province');
6   -});
7   -
8   -router.post('/', (req, res) => {
9   - res.send('POST Province');
10   -});
11   -
12   -router.put('/', (req, res) => {
13   - res.send('PUT Province');
14   -});
15   -
16   -router.delete('/', (req, res) => {
17   - res.send('DELETE Province');
18   -});
19   -
20   -module.exports = router;
controllers/sale-area/sale-area.js
... ... @@ -1,93 +0,0 @@
1   -const express = require('express');
2   -const router = express.Router();
3   -const sendRequest = require('utils/send-request');
4   -const sendResponse = require('utils/send-response');
5   -const validate = require('utils/validator');
6   -
7   -const conf = require('utils/config');
8   -
9   -
10   -const timeout = conf.get('requestTimeout');
11   -
12   -router.get('/', async (req, res) => {
13   - // get input (req.params, req.query, req.body)
14   - console.log('GET');
15   - let data = req.body;
16   - let rules = {};
17   - // validate input, handle error
18   - // validate(data, rules)
19   - // .then(() => {
20   - // // logic
21   - // return sendRequest.get('http://127.0.0.1/', timeout, req.session);
22   - // })
23   - // .then((response) => {
24   - // console.log('res = ' + response);
25   - // res.send('GET Sale Area');
26   - // })
27   - // .catch((error) => {
28   - // console.log('catch ' + error);
29   - // if (error instanceof ValidationError) {
30   - // let response = sendResponse.missingOrInvalidResponse(error.instance[0].message);
31   - // res.status(403);
32   - // res.json(response);
33   - // } else if (error instanceof UnirestError) {
34   - // console.log('hey');
35   - // res.status(500);
36   - // res.send(error.instance.message);
37   - // } else {
38   - // res.status(501);
39   - // res.send(error);
40   - // }
41   - // });
42   - try {
43   - await validate(data, rules);
44   - let response = await sendRequest.get('http://127.0.0.1/', timeout, req.session);
45   - console.log('res = ' + response);
46   - res.send('GET Sale Area');
47   - }
48   - catch(error) {
49   - let errResponse = sendResponse.handleError(error);
50   - res.status(errResponse.code);
51   - res.send(errResponse.object);
52   - }
53   -});
54   -
55   -
56   -
57   -router.post('/', (req, res) => {
58   - // get input (req.params, req.query, req.body)
59   - let data = req.body;
60   - let rules = {};
61   - // validate input, handle error
62   - indicative.validate(data, rules)
63   - .then(() => {
64   - // logic
65   - sendRequest.post('http://10.1.2.155:3738/api/heroes', timeout, req.session, data)
66   - .then((response) => {
67   - console.log(response.body);
68   - res.send('POST Sale Area');
69   - })
70   - .catch((error) => {
71   - console.log(error);
72   - res.status(500);
73   - res.send('Error POST Sale Area');
74   - });
75   - })
76   - .catch((error) => {
77   - let response = sendResponse.missingOrInvalidResponse(error.message);
78   - res.status(403);
79   - res.json(response);
80   - });
81   -});
82   -
83   -router.put('/', (req, res) => {
84   - res.send('PUT Sale Area');
85   -});
86   -
87   -router.delete('/', (req, res) => {
88   - res.send('DELETE Sale Area');
89   -});
90   -
91   -
92   -
93   -module.exports = router;
logs/app.log
... ... @@ -12,3 +12,9 @@
12 12 {"message":"phoenix-partner - :: ## - session - a78f627a-aef2-477a-ac52-d144167170f1 ## BE Receive SQL Result: [{\"table\":\"get_spwHashtags\",\"value\":\"bbb\"}]","level":"info"}
13 13 {"message":"phoenix-partner - :: ## - session - 85a0f68c-6543-4db9-9bb3-8f25a6597cb0 ## BE Send SQL Query: {\"table\":\"get_spwHashtags\"}","level":"info"}
14 14 {"message":"phoenix-partner - :: ## - session - 85a0f68c-6543-4db9-9bb3-8f25a6597cb0 ## BE Receive SQL Result: [{\"table\":\"get_spwHashtags\",\"value\":\"bbb\"}]","level":"info"}
  15 +{"message":"phoenix-partner - :: ## - session - 24b3d4de-356c-4bd4-a07b-c419a0466f57 ## BE Send SQL Query: {\"collection\":\"general\",\"filter\":\"(&(companyName=เน‚เธฃเธ‡เธžเธขเธฒเธšเธฒเธฅเน€เธ›เธฒเน‚เธฅ เธžเธซเธฅเน‚เธขเธ˜เธดเธ™))\",\"fields\":\"companyName\"}","level":"info"}
  16 +{"message":"phoenix-partner - :: ## - session - 24b3d4de-356c-4bd4-a07b-c419a0466f57 ## BE Receive SQL Result: []","level":"info"}
  17 +{"message":"phoenix-partner - :: ## - session - 3a1fad66-0e0f-4499-848e-ac5dae13ba7f ## BE Send SQL Query: {\"companyName\":{}}","level":"info"}
  18 +{"message":"phoenix-partner - :: ## - session - 3a1fad66-0e0f-4499-848e-ac5dae13ba7f ## BE Receive SQL Result: []","level":"info"}
  19 +{"message":"phoenix-partner - :: ## - session - 330610bf-2f1f-4f45-a7b5-5a4d686eab52 ## BE Send SQL Query: {\"companyName\":\"เน‚เธฃเธ‡เธžเธขเธฒเธšเธฒเธฅเน€เธ›เธฒเน‚เธฅ เธžเธซเธฅเน‚เธขเธ˜เธดเธ™\"}","level":"info"}
  20 +{"message":"phoenix-partner - :: ## - session - 330610bf-2f1f-4f45-a7b5-5a4d686eab52 ## BE Receive SQL Result: []","level":"info"}
... ...
package-lock.json
... ... @@ -99,8 +99,7 @@
99 99 "balanced-match": {
100 100 "version": "1.0.0",
101 101 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
102   - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
103   - "optional": true
  102 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
104 103 },
105 104 "bcrypt-pbkdf": {
106 105 "version": "1.0.2",
... ... @@ -172,12 +171,16 @@
172 171 "version": "1.1.11",
173 172 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
174 173 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
175   - "optional": true,
176 174 "requires": {
177 175 "balanced-match": "1.0.0",
178 176 "concat-map": "0.0.1"
179 177 }
180 178 },
  179 + "browser-stdout": {
  180 + "version": "1.3.1",
  181 + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
  182 + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
  183 + },
181 184 "bson": {
182 185 "version": "1.1.0",
183 186 "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz",
... ... @@ -319,8 +322,7 @@
319 322 "concat-map": {
320 323 "version": "0.0.1",
321 324 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
322   - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
323   - "optional": true
  325 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
324 326 },
325 327 "connect-flash": {
326 328 "version": "0.1.1",
... ... @@ -762,6 +764,11 @@
762 764 "path-is-absolute": "1.0.1"
763 765 }
764 766 },
  767 + "growl": {
  768 + "version": "1.10.5",
  769 + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
  770 + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
  771 + },
765 772 "har-validator": {
766 773 "version": "2.0.6",
767 774 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
... ... @@ -864,7 +871,6 @@
864 871 "version": "1.0.6",
865 872 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
866 873 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
867   - "optional": true,
868 874 "requires": {
869 875 "once": "1.4.0",
870 876 "wrappy": "1.0.2"
... ... @@ -1139,7 +1145,6 @@
1139 1145 "version": "3.0.4",
1140 1146 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1141 1147 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1142   - "optional": true,
1143 1148 "requires": {
1144 1149 "brace-expansion": "1.1.11"
1145 1150 }
... ... @@ -1387,8 +1392,7 @@
1387 1392 "path-is-absolute": {
1388 1393 "version": "1.0.1",
1389 1394 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1390   - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1391   - "optional": true
  1395 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1392 1396 },
1393 1397 "path-to-regexp": {
1394 1398 "version": "0.1.7",
... ... @@ -1614,6 +1618,21 @@
1614 1618 "optional": true,
1615 1619 "requires": {
1616 1620 "glob": "6.0.4"
  1621 + },
  1622 + "dependencies": {
  1623 + "glob": {
  1624 + "version": "6.0.4",
  1625 + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
  1626 + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
  1627 + "optional": true,
  1628 + "requires": {
  1629 + "inflight": "1.0.6",
  1630 + "inherits": "2.0.3",
  1631 + "minimatch": "3.0.4",
  1632 + "once": "1.4.0",
  1633 + "path-is-absolute": "1.0.1"
  1634 + }
  1635 + }
1617 1636 }
1618 1637 },
1619 1638 "safe-buffer": {
... ...
package.json
... ... @@ -4,8 +4,8 @@
4 4 "description": "",
5 5 "main": "app.js",
6 6 "scripts": {
7   - "test" : "mocha unitTest",
8   - "start" : "npm run test && node app.js"
  7 + "test": "mocha unitTest",
  8 + "start": "npm run test && node app.js"
9 9 },
10 10 "author": "Source Code",
11 11 "license": "ISC",
... ...
utils/utils.js
  1 +var parseFilter = require('ldapjs').parseFilter;
1 2  
2   -
3   -utils = {};
  3 +var utils = {};
4 4  
5 5  
6 6 utils.findQueryString = function(req)
... ... @@ -57,7 +57,14 @@ utils.getUpdateFilter = function(obj)
57 57 return obj;
58 58 }
59 59  
60   -utils.getQuery = async function(data,query){
  60 +utils.getQueryFilter = async function(data)
  61 +{
  62 + var filter = parseFilter(data);
  63 + return getQuery(filter);
  64 +}
  65 +
  66 +getQuery = async function(data,query){
  67 +
61 68 if(!query)
62 69 var query = {};
63 70 //type !(xx) connot be use
... ... @@ -94,7 +101,7 @@ utils.getQuery = async function(data,query){
94 101 break;
95 102 default :
96 103 // query += temFilter[i].attribute +" "+ operate +" "+ temFilter[i].value;
97   - var regexValue = new RegExp(temFilter[i].value,"g")
  104 + var regexValue = temFilter[i].value;
98 105 if(data.type == 'or'){
99 106 var objOr = {}
100 107 var attribute = temFilter[i].attribute;
... ...