Commit f40deb5d245335c4e4f98bb05b4c181d26780075
1 parent
29faa44b
Exists in
master
and in
1 other branch
update api vizCard
Showing
3 changed files
with
215 additions
and
5 deletions
Show diff stats
package-lock.json
... | ... | @@ -153,6 +153,11 @@ |
153 | 153 | "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz", |
154 | 154 | "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=" |
155 | 155 | }, |
156 | + "circular-json": { | |
157 | + "version": "0.5.5", | |
158 | + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.5.tgz", | |
159 | + "integrity": "sha512-13YaR6kiz0kBNmIVM87Io8Hp7bWOo4r61vkEANy8iH9R9bc6avud/1FT0SBpqR1RpIQADOh/Q+yHZDA1iL6ysA==" | |
160 | + }, | |
156 | 161 | "clean-css": { |
157 | 162 | "version": "3.4.28", |
158 | 163 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", |
... | ... | @@ -276,6 +281,16 @@ |
276 | 281 | "assert-plus": "1.0.0" |
277 | 282 | } |
278 | 283 | }, |
284 | + "date-format": { | |
285 | + "version": "1.2.0", | |
286 | + "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz", | |
287 | + "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=" | |
288 | + }, | |
289 | + "dateformat": { | |
290 | + "version": "3.0.3", | |
291 | + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", | |
292 | + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" | |
293 | + }, | |
279 | 294 | "debug": { |
280 | 295 | "version": "2.6.9", |
281 | 296 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |
... | ... | @@ -543,6 +558,11 @@ |
543 | 558 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", |
544 | 559 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" |
545 | 560 | }, |
561 | + "isarray": { | |
562 | + "version": "1.0.0", | |
563 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | |
564 | + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | |
565 | + }, | |
546 | 566 | "isstream": { |
547 | 567 | "version": "0.1.2", |
548 | 568 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", |
... | ... | @@ -619,6 +639,27 @@ |
619 | 639 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", |
620 | 640 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" |
621 | 641 | }, |
642 | + "log4js": { | |
643 | + "version": "3.0.4", | |
644 | + "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.4.tgz", | |
645 | + "integrity": "sha512-4rQ1TrOf85lxB0+hBiPF27Zw8pGTHxKZq8FYfum1TNhx/KMUlQ+LL4bMKcdzc7zoAFF992w8+MFQm3BQbUgePA==", | |
646 | + "requires": { | |
647 | + "circular-json": "0.5.5", | |
648 | + "date-format": "1.2.0", | |
649 | + "debug": "3.1.0", | |
650 | + "streamroller": "0.7.0" | |
651 | + }, | |
652 | + "dependencies": { | |
653 | + "debug": { | |
654 | + "version": "3.1.0", | |
655 | + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | |
656 | + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | |
657 | + "requires": { | |
658 | + "ms": "2.0.0" | |
659 | + } | |
660 | + } | |
661 | + } | |
662 | + }, | |
622 | 663 | "longest": { |
623 | 664 | "version": "1.0.1", |
624 | 665 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", |
... | ... | @@ -733,6 +774,11 @@ |
733 | 774 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", |
734 | 775 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" |
735 | 776 | }, |
777 | + "process-nextick-args": { | |
778 | + "version": "2.0.0", | |
779 | + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", | |
780 | + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" | |
781 | + }, | |
736 | 782 | "promise": { |
737 | 783 | "version": "6.1.0", |
738 | 784 | "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz", |
... | ... | @@ -776,6 +822,20 @@ |
776 | 822 | "unpipe": "1.0.0" |
777 | 823 | } |
778 | 824 | }, |
825 | + "readable-stream": { | |
826 | + "version": "2.3.6", | |
827 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | |
828 | + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", | |
829 | + "requires": { | |
830 | + "core-util-is": "1.0.2", | |
831 | + "inherits": "2.0.3", | |
832 | + "isarray": "1.0.0", | |
833 | + "process-nextick-args": "2.0.0", | |
834 | + "safe-buffer": "5.1.1", | |
835 | + "string_decoder": "1.1.1", | |
836 | + "util-deprecate": "1.0.2" | |
837 | + } | |
838 | + }, | |
779 | 839 | "repeat-string": { |
780 | 840 | "version": "1.6.1", |
781 | 841 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", |
... | ... | @@ -915,6 +975,35 @@ |
915 | 975 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", |
916 | 976 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" |
917 | 977 | }, |
978 | + "streamroller": { | |
979 | + "version": "0.7.0", | |
980 | + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", | |
981 | + "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", | |
982 | + "requires": { | |
983 | + "date-format": "1.2.0", | |
984 | + "debug": "3.1.0", | |
985 | + "mkdirp": "0.5.1", | |
986 | + "readable-stream": "2.3.6" | |
987 | + }, | |
988 | + "dependencies": { | |
989 | + "debug": { | |
990 | + "version": "3.1.0", | |
991 | + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | |
992 | + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | |
993 | + "requires": { | |
994 | + "ms": "2.0.0" | |
995 | + } | |
996 | + } | |
997 | + } | |
998 | + }, | |
999 | + "string_decoder": { | |
1000 | + "version": "1.1.1", | |
1001 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | |
1002 | + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | |
1003 | + "requires": { | |
1004 | + "safe-buffer": "5.1.1" | |
1005 | + } | |
1006 | + }, | |
918 | 1007 | "tough-cookie": { |
919 | 1008 | "version": "2.3.4", |
920 | 1009 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", |
... | ... | @@ -1021,6 +1110,11 @@ |
1021 | 1110 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", |
1022 | 1111 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" |
1023 | 1112 | }, |
1113 | + "util-deprecate": { | |
1114 | + "version": "1.0.2", | |
1115 | + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | |
1116 | + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | |
1117 | + }, | |
1024 | 1118 | "utils-merge": { |
1025 | 1119 | "version": "1.0.0", |
1026 | 1120 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", |
... | ... | @@ -1086,6 +1180,28 @@ |
1086 | 1180 | "xmldoc": "1.1.2" |
1087 | 1181 | } |
1088 | 1182 | }, |
1183 | + "xml-js": { | |
1184 | + "version": "1.6.7", | |
1185 | + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.7.tgz", | |
1186 | + "integrity": "sha512-1hn0xwwfMcWywnJxqiOXiv+pZaOJyf/YWcUeqJICF0BFb+IOkRFSkKyeA0V62WqTHXNdBxNuCFHhS/w2DtYpoA==", | |
1187 | + "requires": { | |
1188 | + "sax": "1.2.4" | |
1189 | + } | |
1190 | + }, | |
1191 | + "xml2js": { | |
1192 | + "version": "0.4.19", | |
1193 | + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", | |
1194 | + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", | |
1195 | + "requires": { | |
1196 | + "sax": "1.2.4", | |
1197 | + "xmlbuilder": "9.0.7" | |
1198 | + } | |
1199 | + }, | |
1200 | + "xmlbuilder": { | |
1201 | + "version": "9.0.7", | |
1202 | + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", | |
1203 | + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" | |
1204 | + }, | |
1089 | 1205 | "xmldoc": { |
1090 | 1206 | "version": "1.1.2", |
1091 | 1207 | "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", | ... | ... |
package.json
... | ... | @@ -8,11 +8,16 @@ |
8 | 8 | "dependencies": { |
9 | 9 | "body-parser": "~1.18.2", |
10 | 10 | "cookie-parser": "~1.4.3", |
11 | + "dateformat": "^3.0.3", | |
11 | 12 | "debug": "~2.6.9", |
12 | 13 | "easysoap": "^2.0.1", |
13 | 14 | "express": "^4.15.5", |
14 | 15 | "jade": "~1.11.0", |
16 | + "log4js": "^3.0.4", | |
15 | 17 | "morgan": "~1.9.0", |
16 | - "serve-favicon": "~2.4.5" | |
18 | + "request": "^2.87.0", | |
19 | + "serve-favicon": "~2.4.5", | |
20 | + "xml-js": "^1.6.7", | |
21 | + "xml2js": "^0.4.19" | |
17 | 22 | } |
18 | 23 | } | ... | ... |
routes/CMF/vizCard.js
1 | 1 | 'use strict'; |
2 | 2 | var express = require('express'); |
3 | 3 | var router = express.Router(); |
4 | -const EasySoap = require('easysoap'); | |
4 | +const request = require('request'); | |
5 | +var parseJson = require('xml-js'); | |
6 | +var custom_log = require('../../config/logger'); | |
7 | +var config = require('../../config/config'); | |
8 | +var stat = require('../../utils/SutisStat'); | |
9 | +var alarm = require('../../utils/SutisAlarm'); | |
10 | +var detail = require('../../utils/SutisDetail'); | |
11 | +var logger = require('../../utils/SutisLogSummary'); | |
5 | 12 | |
6 | -/* GET users listing. */ | |
7 | -router.get('/', function(req, res, next) { | |
8 | - res.send('viz card id'); | |
13 | +var _url = `http://localhost:8080` | |
14 | + | |
15 | +router.get('/',async function(req, res, next) { | |
16 | + | |
17 | + var cmd = 'vizCard' | |
18 | + | |
19 | + var requestXml = `<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"> | |
20 | + <soap:Header/> | |
21 | + <soap:Body> | |
22 | + <tem:SearchCustomer> | |
23 | + <tem:username>axviz</tem:username> | |
24 | + <tem:password>1234</tem:password> | |
25 | + <tem:systemName>30</tem:systemName> | |
26 | + <tem:queryType>0</tem:queryType> | |
27 | + <tem:cardId>${req.query.id}</tem:cardId> | |
28 | + </tem:SearchCustomer> | |
29 | + </soap:Body> | |
30 | + </soap:Envelope>` | |
31 | + | |
32 | + console.log(requestXml); | |
33 | + // console.log(req.query.fields) | |
34 | + | |
35 | + const result = await asyncRequest({ | |
36 | + url : _url, | |
37 | + body : requestXml, | |
38 | + method : 'POST' | |
39 | + }); | |
40 | + | |
41 | + // parseString(result.body, function (err, result1) { | |
42 | + // console.log(result1); | |
43 | + // }); | |
44 | + | |
45 | + var result1 = parseJson.xml2json(result.body, {compact: true, spaces: 4}) | |
46 | + result1 = JSON.parse(result1) | |
47 | + result1 = result1['soap:Envelope']['soap:Body']['tem:SearchCustomerResponse']['tem:SearchCustomerResult']['tem:CustomerSearchResult']; | |
48 | + delete result1._comment; | |
49 | + | |
50 | + var response = {}; | |
51 | + | |
52 | + if(req.query.fields){ | |
53 | + var listFields = req.query.fields.split(","); | |
54 | + // console.log(listFields) | |
55 | + } | |
56 | + | |
57 | + for(var key in result1){ | |
58 | + var keyObj = capitalizeFirstLetter(key.replace('tem:','')) | |
59 | + // console.log(keyObj+' : '+result1[key]['_text']); | |
60 | + if(listFields){ | |
61 | + if(listFields.includes(keyObj)){ | |
62 | + response[keyObj] = result1[key]['_text']; | |
63 | + } | |
64 | + } else { | |
65 | + response[keyObj] = result1[key]['_text']; | |
66 | + } | |
67 | + } | |
68 | + | |
69 | + stat.recv(cmd, '20000'); | |
70 | + stat.retn(cmd, '20000'); | |
71 | + | |
72 | + res.status(200).json({ | |
73 | + resultCode: '20000', | |
74 | + resultDescription: 'Success', | |
75 | + resultData: response | |
76 | + }); | |
9 | 77 | }); |
10 | 78 | |
79 | +function capitalizeFirstLetter(string) { | |
80 | + return string.charAt(0).toLowerCase() + string.slice(1); | |
81 | +} | |
82 | + | |
83 | +function asyncRequest (params = {}) { | |
84 | + return new Promise((resolve, reject) => { | |
85 | + request(params, function (error, response, body) { | |
86 | + if (error) { | |
87 | + | |
88 | + | |
89 | + (error); | |
90 | + } else { | |
91 | + resolve({ | |
92 | + 'body' : body, | |
93 | + 'response': response | |
94 | + }); | |
95 | + } | |
96 | + }); | |
97 | + }); | |
98 | +} | |
99 | + | |
11 | 100 | module.exports = router; | ... | ... |