Blame view

ais-structure/src/modules/vizcard/vizCard.ctrl.js 2.62 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://localhost:8080`
ba477a68   Nattapon Wongpaet   change structure ...
11
12

exports.vizcard = async function (req, res, next) {
dd6ce15e   sumatek   add customer
13
    var requestXml = `<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">
4bcb9ffa   Nattapon Wongpaet   update log vizcard
14
15
16
    <soap:Header/>
    <soap:Body>
        <tem:SearchCustomer>
c39cf9da   Nattapon Wongpaet   update stat log
17
            <tem:username>axviz</tem:username>
a7a5d7d4   Nattapon Wongpaet   get header
18
            <tem:password>1234</tem:password>
c4a567d0   sumatek   merge
19
            <tem:systemName>30</tem:systemName>
095909b9   sumatek   update log
20
            <tem:queryType>1</tem:queryType>
b77690fa   Nattapon Wongpaet   update post custo...
21
            <tem:cardId>${req.params.id}</tem:cardId>
6efce50d   Nattapon Wongpaet   update validate a...
22
23
24
        </tem:SearchCustomer>
    </soap:Body>
    </soap:Envelope>`
c4a567d0   sumatek   merge
25
26

    // console.log(requestXml);
dd6ce15e   sumatek   add customer
27
    // console.log(req.query.fields)
50ad7d6d   Nattapon Wongpaet   update get vizcar...
28

6efce50d   Nattapon Wongpaet   update validate a...
29
30
    const result = await asyncRequest({
        url               : _url,
c4a567d0   sumatek   merge
31
        body              : requestXml,
6efce50d   Nattapon Wongpaet   update validate a...
32
33
34
35
36
        method            : 'POST'
    });

    // parseString(result.body, function (err, result1) {
    //     console.log(result1);
79f1a7b2   Nattapon Wongpaet   update api get vi...
37
38
39
40
41
    // });

    var result1 = parseJson.xml2json(result.body, {compact: true, spaces: 4})
    result1 = JSON.parse(result1)
    result1 = result1['soap:Envelope']['soap:Body']['tem:SearchCustomerResponse']['tem:SearchCustomerResult']['tem:CustomerSearchResult'];
6efce50d   Nattapon Wongpaet   update validate a...
42
    delete result1._comment;
ba477a68   Nattapon Wongpaet   change structure ...
43

a7a5d7d4   Nattapon Wongpaet   get header
44
    var response = {};
f9d80b22   Nattapon Wongpaet   update header viz...
45

a7a5d7d4   Nattapon Wongpaet   get header
46
47
48
49
    response['resultCode'] = '20000';
    response['developerMessage'] = 'Success';

    if(req.query.fields){
adfb98a7   sumatek   merge
50
51
        var listFields = req.query.fields.split(",");
        // console.log(listFields)
095909b9   sumatek   update log
52
    }
ed32a9e9   Nattapon Wongpaet   update stats vizcard
53

1b5ca11b   Nattapon Wongpaet   update vizcard
54
55
    for(var key in result1){
        var keyObj = capitalizeFirstLetter(key.replace('tem:',''))
50ad7d6d   Nattapon Wongpaet   update get vizcar...
56
        // console.log(keyObj+' : '+result1[key]['_text']);
1b5ca11b   Nattapon Wongpaet   update vizcard
57
        if(listFields){
50ad7d6d   Nattapon Wongpaet   update get vizcar...
58
59
60
61
62
63
64
            if(listFields.includes(keyObj)){
                response[keyObj] = result1[key]['_text'];
            }
        } else {
            response[keyObj] = result1[key]['_text'];
        }
    }
c4a567d0   sumatek   merge
65
    
4bcb9ffa   Nattapon Wongpaet   update log vizcard
66
67
    res.status(200).json(response);
};
449b0a7c   Nattapon Wongpaet   fix bug vizcard
68

50ad7d6d   Nattapon Wongpaet   update get vizcar...
69
function capitalizeFirstLetter(string) {
449b0a7c   Nattapon Wongpaet   fix bug vizcard
70
    return string.charAt(0).toLowerCase() + string.slice(1);
c4a567d0   sumatek   merge
71
}
50ad7d6d   Nattapon Wongpaet   update get vizcar...
72

4bcb9ffa   Nattapon Wongpaet   update log vizcard
73
function asyncRequest (params = {}) {
dd6ce15e   sumatek   add customer
74
    return new Promise((resolve, reject) => {
50ad7d6d   Nattapon Wongpaet   update get vizcar...
75
        request(params, function (error, response, body) {
4bcb9ffa   Nattapon Wongpaet   update log vizcard
76
            if (error) {
449b0a7c   Nattapon Wongpaet   fix bug vizcard
77
                reject(error);
50ad7d6d   Nattapon Wongpaet   update get vizcar...
78
            } else {
adfb98a7   sumatek   merge
79
                resolve({
53004544   Nattapon Wongpaet   update customer
80
                    'body'    : body,
c4a567d0   sumatek   merge
81
                    'response': response
ba477a68   Nattapon Wongpaet   change structure ...
82
                });
90f9d224   sumatek   update unknow req
83
            }
c4a567d0   sumatek   merge
84
        });
90f9d224   sumatek   update unknow req
85
86
    });
}
ba477a68   Nattapon Wongpaet   change structure ...

6efce50d   Nattapon Wongpaet   update validate a...

dd6ce15e   sumatek   add customer

6efce50d   Nattapon Wongpaet   update validate a...

f9d80b22   Nattapon Wongpaet   update header viz...

c39cf9da   Nattapon Wongpaet   update stat log

6efce50d   Nattapon Wongpaet   update validate a...

dd6ce15e   sumatek   add customer

a55a3d02   Nattapon Wongpaet   update post custo...

dd6ce15e   sumatek   add customer

a55a3d02   Nattapon Wongpaet   update post custo...

dd6ce15e   sumatek   add customer

ba477a68   Nattapon Wongpaet   change structure ...

6efce50d   Nattapon Wongpaet   update validate a...