Blame view

ais-structure/src/modules/membercard/getMembership.ctrl.js 8.56 KB
8221da7a   Nattapon Wongpaet   update flow membe...
1
2
3
4
5
6
7
8
9
10
11
var parseJson = require('xml-js');

var stats = require('../helper/stats.js'); 
var messageSOAP = require('../helper/messageSOAP.js'); 
var validatorHelper = require('../helper/validator.js');
var connection = require('../helper/connection.js');
var responseMsg = require('../helper/responseMsg.js');
var log = require('../helper/log.js');
var constant = require('../helper/constants.js')

exports.getMembership = async function (req, res, next) {
818cf50b   Nattapon Wongpaet   update get custom...
12
13
14
15
    var getCmd = "CustomerMembership";
    var sendCusCmd = "Customer";
    var sendMemCmd = "MemberCard";
    var d01 = "D01";
8221da7a   Nattapon Wongpaet   update flow membe...
16
17
    var method = constant.METHOD.GET;

818cf50b   Nattapon Wongpaet   update get custom...
18
19
20
21
22
23
24
    if(req.params.customerId){
        var customerId = req.params.customerId
    } else if(req.params.userData && req.params.userType){
        var customerId = req.params.userData+"@"+req.params.userType
    } else if(req.query.clientName && req.query.commandId){
        var customerId = req.query.clientName+"@"+req.query.commandId;
    }
8221da7a   Nattapon Wongpaet   update flow membe...
25

1f123eb1   Nattapon Wongpaet   update post membe...
26
27
    log.startlog(req,method+"_"+getCmd,req.query.commandId,customerId);
    log.logDetail.addInput(req,req.query.clientName,method+"_"+getCmd,constant.REQUEST,req,req.body);
8221da7a   Nattapon Wongpaet   update flow membe...
28
    
b77690fa   Nattapon Wongpaet   update post custo...
29
    var err = await validator(req,getCmd);
8221da7a   Nattapon Wongpaet   update flow membe...
30
31
32
    
    if(err.length > 0)
    {
1f123eb1   Nattapon Wongpaet   update post membe...
33
        log.addErrorSummary(req,req.query.clientName,method+"_"+getCmd,"null","Fail");
8221da7a   Nattapon Wongpaet   update flow membe...
34
35
        log.log(err,'error'); 
        var response = responseMsg.error(req,getCmd,40300);
8221da7a   Nattapon Wongpaet   update flow membe...
36
37
    }else
    {        
1f123eb1   Nattapon Wongpaet   update post membe...
38
        log.addSuccessSummary(req,req.query.clientName,method+"_"+getCmd,"null","Success");
818cf50b   Nattapon Wongpaet   update get custom...
39
        var objectData = Object.assign(req.query,req.params);
03f3be38   Nattapon Wongpaet   fix bugs
40

1f123eb1   Nattapon Wongpaet   update post membe...
41
        const result = await connection.requestJsonToD01(req,objectData,sendCusCmd,method);
887b2ec5   Nattapon Wongpaet   update put customer
42
        // log.logDetail.addInput(req,d01,method+"_"+sendCusCmd,constant.RESPONSE,result,result.response);
9a512329   Nattapon Wongpaet   no flow membership
43
44

        //Get Customer
8221da7a   Nattapon Wongpaet   update flow membe...
45
        if(typeof result.err === 'undefined'){  
818cf50b   Nattapon Wongpaet   update get custom...
46
47
48
49
50
            var resultObj = result.response;
            if(resultObj.resultCode.startsWith("2"))
            {
                if(resultObj.resultData && resultObj.resultData.length>0)
                {
887b2ec5   Nattapon Wongpaet   update put customer
51
                    // log.addSuccessSummary(req,d01,method+"_"+sendCusCmd,resultObj.resultCode,resultObj.resultDescription);
818cf50b   Nattapon Wongpaet   update get custom...
52
                    var cusIdArr = [];
887b2ec5   Nattapon Wongpaet   update put customer
53
                    // stats.receiveRestResponse(d01,method,sendCusCmd,constant.SUCCESS);
818cf50b   Nattapon Wongpaet   update get custom...
54
55
56
                    for(var i = 0; i < resultObj.resultData.length; i++){
                        cusIdArr.push(resultObj.resultData[i].customerId)
                    }
03f3be38   Nattapon Wongpaet   fix bugs
57
58
                    var objectMemberCardData = {customerId : cusIdArr}
                    const resultMemberCard = await connection.requestJsonToD01(req,objectMemberCardData,sendMemCmd,method);
818cf50b   Nattapon Wongpaet   update get custom...
59

9a512329   Nattapon Wongpaet   no flow membership
60
61
                    //Get MemberCard handler
                    if(typeof resultMemberCard.err === 'undefined'){
b77690fa   Nattapon Wongpaet   update post custo...
62
63
64
                        var resultMemberCardObj = resultMemberCard.response;
                        if(resultMemberCardObj.resultCode.startsWith("2")){
                            if(resultMemberCardObj.resultData && resultMemberCardObj.resultData.length>0){
887b2ec5   Nattapon Wongpaet   update put customer
65
66
67
                                // stats.receiveRestResponse(d01,method,sendMemCmd,constant.SUCCESS);
                                // log.logDetail.addInput(req,d01,method+"_"+sendMemCmd,constant.RESPONSE,resultMemberCard,resultMemberCard.response);
                                // log.addSuccessSummary(req,d01,method+"_"+sendMemCmd,resultMemberCardObj.resultCode,resultMemberCardObj.resultDescription);
a0638777   Nattapon Wongpaet   add try catch and...
68
69
70
71
72
73
74

                                try{
                                    for(var i = 0; i < resultObj.resultData.length; i++){
                                        for(var j = 0; j < resultMemberCardObj.resultData.length; j++){
                                            if(resultMemberCardObj.resultData[j].cardOwnerIdList.includes(resultObj.resultData[i].customerId)){
                                                resultObj.resultData[i] = Object.assign(resultObj.resultData[i],{cardId : resultMemberCardObj.resultData[j].cardId});
                                            }
9a512329   Nattapon Wongpaet   no flow membership
75
76
                                        }
                                    }
a0638777   Nattapon Wongpaet   add try catch and...
77
                                    var response = responseMsg.success(req,getCmd,resultObj);
9a512329   Nattapon Wongpaet   no flow membership
78
                                }
a0638777   Nattapon Wongpaet   add try catch and...
79
80
81
82
                                catch(err){
                                    
                                    log.log(err);

887b2ec5   Nattapon Wongpaet   update put customer
83
                                    // stats.receiveRestResponse(d01,method,sendCusCmd,constant.ERROR);
a0638777   Nattapon Wongpaet   add try catch and...
84
85
86
87
                                    var response = responseMsg.error(req,getCmd,50000);
                                }
    
                                
9a512329   Nattapon Wongpaet   no flow membership
88
                            } else {
887b2ec5   Nattapon Wongpaet   update put customer
89
                                // stats.receiveRestResponse(d01,method,sendCusCmd,constant.RESPONSERESULT.DATA_NOT_FOUND.developerMessage);
cf541103   Nattapon Wongpaet   update post custo...
90
                                var response = responseMsg.error(req,getCmd,40401);
887b2ec5   Nattapon Wongpaet   update put customer
91
                                // log.addErrorSummary(req,d01,method+"_"+sendCusCmd,response.resultCode,response.developerMessage);
818cf50b   Nattapon Wongpaet   update get custom...
92
                            }
9a512329   Nattapon Wongpaet   no flow membership
93
                        } else if(resultObj.resultCode.startsWith("404")){
887b2ec5   Nattapon Wongpaet   update put customer
94
                            // stats.receiveRestResponse(d01,method,sendCusCmd,constant.RESPONSERESULT.DATA_NOT_FOUND.developerMessage);
9a512329   Nattapon Wongpaet   no flow membership
95
                            var response = responseMsg.direct(req,getCmd,resultObj);
887b2ec5   Nattapon Wongpaet   update put customer
96
                            // log.addErrorSummary(req,d01,method+"_"+sendCusCmd,response.resultCode,response.developerMessage);
9a512329   Nattapon Wongpaet   no flow membership
97
                        } else if(resultObj.resultCode.startsWith("5")){
887b2ec5   Nattapon Wongpaet   update put customer
98
                            // stats.receiveRestResponse(d01,method,sendCusCmd,constant.ERROR);
9a512329   Nattapon Wongpaet   no flow membership
99
                            var response = responseMsg.direct(req,getCmd,resultObj);
887b2ec5   Nattapon Wongpaet   update put customer
100
                            // log.addErrorSummary(req,d01,method+"_"+sendCusCmd,response.resultCode,response.developerMessage);
9a512329   Nattapon Wongpaet   no flow membership
101
                        } else {
887b2ec5   Nattapon Wongpaet   update put customer
102
                            // stats.receiveRestResponse(d01,method,sendCusCmd,constant.ERROR);
9a512329   Nattapon Wongpaet   no flow membership
103
                            var response = responseMsg.error(req,getCmd,50000);
818cf50b   Nattapon Wongpaet   update get custom...
104
                        }
9a512329   Nattapon Wongpaet   no flow membership
105
                    } else {
887b2ec5   Nattapon Wongpaet   update put customer
106
                        // stats.receiveRestResponse(d01,method,sendCusCmd,constant.ERROR);
27aed231   Nattapon Wongpaet   update post membe...
107
108
                        var response = responseMsg.error(req,getCmd,50000);
                        // log.addErrorSummary(d01,method+"_"+sendCusCmd,resultObj.resultCode,resultObj.developerMessage);
9a512329   Nattapon Wongpaet   no flow membership
109
110
111
                    }//End get MemberCard


27aed231   Nattapon Wongpaet   update post membe...
112
                } else {
887b2ec5   Nattapon Wongpaet   update put customer
113
                    // stats.receiveRestResponse(d01,method,sendCusCmd,constant.RESPONSERESULT.DATA_NOT_FOUND.developerMessage);
818cf50b   Nattapon Wongpaet   update get custom...
114
                    var response = responseMsg.error(req,getCmd,40300);
887b2ec5   Nattapon Wongpaet   update put customer
115
                    // log.addErrorSummary(req,d01,method+"_"+sendCusCmd,response.resultCode,response.developerMessage);
818cf50b   Nattapon Wongpaet   update get custom...
116
                }
9a512329   Nattapon Wongpaet   no flow membership
117
            } else if(resultObj.resultCode.startsWith("404")){
887b2ec5   Nattapon Wongpaet   update put customer
118
                // stats.receiveRestResponse(d01,method,sendMemCmd,constant.ERROR);
818cf50b   Nattapon Wongpaet   update get custom...
119
                var response = responseMsg.direct(req,getCmd,resultObj);
887b2ec5   Nattapon Wongpaet   update put customer
120
                // log.addErrorSummary(req,d01,method+"_"+sendMemCmd,response.resultCode,response.developerMessage);
9a512329   Nattapon Wongpaet   no flow membership
121
            } else if(resultObj.resultCode.startsWith("5")){
887b2ec5   Nattapon Wongpaet   update put customer
122
                // stats.receiveRestResponse(d01,method,sendMemCmd,constant.ERROR);
9a512329   Nattapon Wongpaet   no flow membership
123
                var response = responseMsg.direct(req,getCmd,resultObj);
887b2ec5   Nattapon Wongpaet   update put customer
124
                // log.addErrorSummary(req,d01,method+"_"+sendMemCmd,response.resultCode,response.developerMessage);
9a512329   Nattapon Wongpaet   no flow membership
125
            } else {
887b2ec5   Nattapon Wongpaet   update put customer
126
                // stats.receiveRestResponse(d01,method,sendMemCmd,constant.ERROR);
9a512329   Nattapon Wongpaet   no flow membership
127
                var response = responseMsg.error(req,getCmd,50000);
8221da7a   Nattapon Wongpaet   update flow membe...
128
            }
8221da7a   Nattapon Wongpaet   update flow membe...
129
        } else {
887b2ec5   Nattapon Wongpaet   update put customer
130
            // stats.receiveRestResponse(d01,method,sendCusCmd,constant.ERROR);
818cf50b   Nattapon Wongpaet   update get custom...
131
132
            var response = responseMsg.error(req,getCmd,50000);
            // log.addErrorSummary(d01,method+"_"+sendCmd,response.resultCode,response.developerMessage);
8221da7a   Nattapon Wongpaet   update flow membe...
133
        }
8221da7a   Nattapon Wongpaet   update flow membe...
134
135
136
    }

    // console.log(response);
1f123eb1   Nattapon Wongpaet   update post membe...
137
    log.logDetail.addOutput(req,req.query.clientName,method+"_"+getCmd,constant.RESPONSE,response,response); 
8221da7a   Nattapon Wongpaet   update flow membe...
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
    res.status(200).json(response);
    next();
};


function validator(req,cmd)
{
    var list = [];
    list.push([true,"queryStr","commandId","int"]);
    list.push([true,"queryStr","clientName","string"]);
    // list.push([true,"queryStr","lastName","string"]);
    // list.push([true,"queryStr","emailAddress","string"]);
    // list.push([true,"queryStr","mobileNo","string"]);
    // list.push([false,"queryStr","mobileNo","string"]);

    var err = validatorHelper(req,list);
    if(err.length > 0)    
        stats.receiveBadRequest(req.method,cmd);    
    else
        stats.receiveRequest(req.method,cmd);

    return err;
}