Blame view

ais-structure/src/modules/vizcard/vizCard.ctrl.js 3.55 KB
f9d80b22   Nattapon Wongpaet   update header viz...
1
2
var fs = require('fs'); 
var moment = require('moment');
ba477a68   Nattapon Wongpaet   change structure ...
3
var _ = require('lodash');  
6efce50d   Nattapon Wongpaet   update validate a...
4
5
6
var env = process.env.NODE_ENV || 'development'; 
var rp = require('request-promise'); 
var logger = require('../../logger/logger');
dd6ce15e   sumatek   add customer
7
8
var cfg = require('../../config/config.js').get(env);
var request = require('request');
095909b9   sumatek   update log
9
var parseJson = require('xml-js');
3d36a443   Nattapon Wongpaet   add constant
10
var _url = `http://10.1.3.74:8080`;
ba477a68   Nattapon Wongpaet   change structure ...
11
12

var stats = require('../helper/stats.js'); 
dd6ce15e   sumatek   add customer
13
var messageSOAP = require('../helper/messageSOAP.js'); 
4bcb9ffa   Nattapon Wongpaet   update log vizcard
14
15
16
var validatorHelper = require('../helper/validator.js');

exports.vizcard = async function (req, res, next) {
c39cf9da   Nattapon Wongpaet   update stat log
17

a7a5d7d4   Nattapon Wongpaet   get header
18
    var err = validator(req,"GET VIZCard");
c4a567d0   sumatek   merge
19
    
095909b9   sumatek   update log
20
    if(err.length > 0)
b77690fa   Nattapon Wongpaet   update post custo...
21
    {
6efce50d   Nattapon Wongpaet   update validate a...
22
23
24
        var response = {
            resultCode : "40300",
            developerMessage : "Missing or invalid parameter"
c4a567d0   sumatek   merge
25
26
        };

dd6ce15e   sumatek   add customer
27
        res.status(200).json(response);
50ad7d6d   Nattapon Wongpaet   update get vizcar...
28
    }else
6efce50d   Nattapon Wongpaet   update validate a...
29
30
    {        
        // var requestXml = `<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
c4a567d0   sumatek   merge
31
        // <soap:Header/>
6efce50d   Nattapon Wongpaet   update validate a...
32
33
34
35
36
        // <soap:Body>
        //     <tem:SearchCustomer>
        //         <tem:username>axviz</tem:username>
        //         <tem:password>1234</tem:password>
        //         <tem:systemName>30</tem:systemName>
79f1a7b2   Nattapon Wongpaet   update api get vi...
37
38
39
40
41
        //         <tem:queryType>1</tem:queryType>
        //         <tem:cardId>${req.params.id}</tem:cardId>
        //     </tem:SearchCustomer>
        // </soap:Body>
        // </soap:Envelope>`
6efce50d   Nattapon Wongpaet   update validate a...
42

ba477a68   Nattapon Wongpaet   change structure ...
43
        var objectData = {
a7a5d7d4   Nattapon Wongpaet   get header
44
            Username : "axviz",
f9d80b22   Nattapon Wongpaet   update header viz...
45
            Password : "1234",
a7a5d7d4   Nattapon Wongpaet   get header
46
47
48
49
            SystemName : "30",
            QueryType : "1",
            CardId : req.query.commandId,
            firstName : req.query.firstName,
adfb98a7   sumatek   merge
50
51
            lastName : req.query.lastName,
            emailAddress : req.query.emailAddress,
095909b9   sumatek   update log
52
            moblieNo : req.query.moblieNo
ed32a9e9   Nattapon Wongpaet   update stats vizcard
53
        };
1b5ca11b   Nattapon Wongpaet   update vizcard
54
55

        var soap = messageSOAP.objectToSOAP(objectData,"SearchCustomer")
50ad7d6d   Nattapon Wongpaet   update get vizcar...
56
        // console.log(soap);
1b5ca11b   Nattapon Wongpaet   update vizcard
57

50ad7d6d   Nattapon Wongpaet   update get vizcar...
58
59
60
61
62
63
64
        // console.log(requestXml);
        // console.log(req.query.fields)

        const result = await asyncRequest({
            url               : _url,
            body              : soap,
            method            : 'POST'
c4a567d0   sumatek   merge
65
        });
4bcb9ffa   Nattapon Wongpaet   update log vizcard
66
67

        // parseString(result.body, function (err, result1) {
449b0a7c   Nattapon Wongpaet   fix bug vizcard
68
        //     console.log(result1);
50ad7d6d   Nattapon Wongpaet   update get vizcar...
69
        // });
449b0a7c   Nattapon Wongpaet   fix bug vizcard
70

c4a567d0   sumatek   merge
71
        var resultSoap = parseJson.xml2json(result.body, {compact: true, spaces: 4})
50ad7d6d   Nattapon Wongpaet   update get vizcar...
72
        resultSoap = JSON.parse(resultSoap)
4bcb9ffa   Nattapon Wongpaet   update log vizcard
73
        resultSoap = resultSoap['soap:Envelope']['soap:Body']['tem:SearchCustomerResponse']['tem:SearchCustomerResult']['tem:CustomerSearchResult'];
dd6ce15e   sumatek   add customer
74

50ad7d6d   Nattapon Wongpaet   update get vizcar...
75
        var resultData = messageSOAP.soapToArray(req,resultSoap);
4bcb9ffa   Nattapon Wongpaet   update log vizcard
76

449b0a7c   Nattapon Wongpaet   fix bug vizcard
77
        var response = {
50ad7d6d   Nattapon Wongpaet   update get vizcar...
78
            resultCode : "20000",
adfb98a7   sumatek   merge
79
            developerMessage : "Success",
53004544   Nattapon Wongpaet   update customer
80
            resultData : resultData,
c4a567d0   sumatek   merge
81
            rowCount : resultData.length
ba477a68   Nattapon Wongpaet   change structure ...
82
        };
90f9d224   sumatek   update unknow req
83
        
c4a567d0   sumatek   merge
84
        res.status(200).json(response);
90f9d224   sumatek   update unknow req
85
86
    }
};
ba477a68   Nattapon Wongpaet   change structure ...
87
88


6efce50d   Nattapon Wongpaet   update validate a...
89
function validator(req,api)
dd6ce15e   sumatek   add customer
90
{
6efce50d   Nattapon Wongpaet   update validate a...
91
92
    var list = [];
    list.push("commandId");
f9d80b22   Nattapon Wongpaet   update header viz...
93
94
    list.push("firstName");
    list.push("lastName");
c39cf9da   Nattapon Wongpaet   update stat log
95
96
97
98
    list.push("emailAddress");
    list.push("mobileNo");

    return validatorHelper(req,list,api);
6efce50d   Nattapon Wongpaet   update validate a...
99
}
dd6ce15e   sumatek   add customer
100
101


a55a3d02   Nattapon Wongpaet   update post custo...
102
function asyncRequest (params = {}) {
dd6ce15e   sumatek   add customer
103
    return new Promise((resolve, reject) => {
a55a3d02   Nattapon Wongpaet   update post custo...
104
        request(params, function (error, response, body) {
dd6ce15e   sumatek   add customer
105
106
            if (error) {
                // reject(error);
ba477a68   Nattapon Wongpaet   change structure ...
107
108
                resolve({
                    'body'    : body,
6efce50d   Nattapon Wongpaet   update validate a...
109
                    'err': error