Blame view

ais-structure/src/modules/membercard/postMembership.ctrl.js 9.63 KB
8221da7a   Nattapon Wongpaet   update flow membe...
1
2
3
4
5
var stats = require('../helper/stats.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');
6f98e3d0   Nattapon Wongpaet   add md5
6
var constant = require('../helper/constants.js')
27aed231   Nattapon Wongpaet   update post membe...
7
8

exports.postMembership = async function (req, res, next){
6f98e3d0   Nattapon Wongpaet   add md5
9
    var getCmd = "CustomerMembership";
8221da7a   Nattapon Wongpaet   update flow membe...
10
    var sendCustomerCmd = "Customer";
27aed231   Nattapon Wongpaet   update post membe...
11
12
13
14
15
16
17
    var sendMemberCardCmd = "MemberCard";
    var d01 = "D01";
    var postMethod = constant.METHOD.POST;
    var putMethod = constant.METHOD.PUT;
    var getMethod = constant.METHOD.GET;

    if(req.params.customerId){
8221da7a   Nattapon Wongpaet   update flow membe...
18
        var customerId = req.params.customerId
27aed231   Nattapon Wongpaet   update post membe...
19
20
    } else if(req.params.userData && req.params.userType){
        var customerId = req.params.userData+"@"+req.params.userType
6f98e3d0   Nattapon Wongpaet   add md5
21
22
    } else if(req.body.clientName && req.body.commandId){
        var customerId = req.body.clientName+"@"+req.body.commandId;
cf541103   Nattapon Wongpaet   update post custo...
23
    }
27aed231   Nattapon Wongpaet   update post membe...
24

cf541103   Nattapon Wongpaet   update post custo...
25
    log.startlog(postMethod+"_"+getCmd,req.body.commandId,customerId);
27aed231   Nattapon Wongpaet   update post membe...
26
    log.logDetail.addInput(req.body.clientName,postMethod+"_"+getCmd,constant.REQUEST,req,req.body);
cf541103   Nattapon Wongpaet   update post custo...
27

27aed231   Nattapon Wongpaet   update post membe...
28
    var err = validator(req,getCmd);
8221da7a   Nattapon Wongpaet   update flow membe...
29
30
   
    if(err.length > 0)
1f123eb1   Nattapon Wongpaet   update post membe...
31
32
    {
        log.addErrorSummary(req.body.clientName,postMethod+"_"+getCmd,"null","Fail");
8221da7a   Nattapon Wongpaet   update flow membe...
33
        console.log(err);
b77690fa   Nattapon Wongpaet   update post custo...
34
        var response = responseMsg.error(req,getCmd,40300);
8221da7a   Nattapon Wongpaet   update flow membe...
35
36
37
    }else
    {
        log.addSuccessSummary(req.body.clientName,postMethod+"_"+getCmd,"null","Success");
1f123eb1   Nattapon Wongpaet   update post membe...
38

27aed231   Nattapon Wongpaet   update post membe...
39
        var objectData = {
8221da7a   Nattapon Wongpaet   update flow membe...
40
41
            cardId : req.body.cardId,
            cardOwnerIdList : customerId
1f123eb1   Nattapon Wongpaet   update post membe...
42
            // _flag : "or"
cf541103   Nattapon Wongpaet   update post custo...
43
        }
8221da7a   Nattapon Wongpaet   update flow membe...
44

27aed231   Nattapon Wongpaet   update post membe...
45
        //GET Customer with cardId and cardOwnerIdList
b77690fa   Nattapon Wongpaet   update post custo...
46
        const result = await connection.requestJsonToD01(objectData,sendMemberCardCmd,getMethod);
cf541103   Nattapon Wongpaet   update post custo...
47
48
49
        log.logDetail.addInput(d01,getMethod+"_"+sendMemberCardCmd,constant.RESPONSE,result,result.response);

        var objDataGetCustomer = {
b77690fa   Nattapon Wongpaet   update post custo...
50
            req : req,
1f123eb1   Nattapon Wongpaet   update post membe...
51
            reqCustomer : {
cf541103   Nattapon Wongpaet   update post custo...
52
53
                customerId : customerId
            },
27aed231   Nattapon Wongpaet   update post membe...
54
            cmd : sendCustomerCmd,
cf541103   Nattapon Wongpaet   update post custo...
55
56
            method : getMethod,
            resultData : result.response.resultData
27aed231   Nattapon Wongpaet   update post membe...
57
58
59
        }

        var objDataPostCustomer = {
cf541103   Nattapon Wongpaet   update post custo...
60
61
62
            req : req,
            reqCustomer : {
                cardId : req.body.cardId,
27aed231   Nattapon Wongpaet   update post membe...
63
                cardOwnerIdList:[customerId]
1f123eb1   Nattapon Wongpaet   update post membe...
64
            },
27aed231   Nattapon Wongpaet   update post membe...
65
66
67
68
69
70
            cmd : sendCustomerCmd,
            method : postMethod,
            resultData : result.response.resultData
        }

        if(typeof result.err === 'undefined'){
1f123eb1   Nattapon Wongpaet   update post membe...
71
            var resultObj = result.response;
27aed231   Nattapon Wongpaet   update post membe...
72
73
74
75
76
77
78
79
80
81
82
            if(resultObj.resultCode.startsWith("2")){
                if(resultObj.resultData && resultObj.resultData.length>0){
                    stats.receiveRestResponse(d01,getMethod,sendMemberCardCmd,constant.SUCCESS);
                    var response = responseMsg.success(req,getCmd,resultObj);
                    log.addSuccessSummary(d01,getMethod+"_"+sendMemberCardCmd,response.resultCode,response.developerMessage);
                } else { //data not found
                    //get customer
                    var getCustomer = await getCustomerD01(objDataGetCustomer);
                    //if get data exits post membercard
                    if(!getCustomer.isErr){
                        if(!getCustomer.isDataNotFound){
1f123eb1   Nattapon Wongpaet   update post membe...
83
                            //post membercard
27aed231   Nattapon Wongpaet   update post membe...
84
                            stats.receiveRestResponse(d01,getMethod,sendCustomerCmd,constant.SUCCESS);
9d8ce483   Nattapon Wongpaet   update url put
85
86
87
88
                            log.addSuccessSummary(d01,getMethod+"_"+sendCustomerCmd,getCustomer.response.resultCode,getCustomer.response.developerMessage);

                            var postCustomer = await postCustomerD01(objDataPostCustomer);

27aed231   Nattapon Wongpaet   update post membe...
89
                            if(!postCustomer.isErr){
cf541103   Nattapon Wongpaet   update post custo...
90
91
                                stats.receiveRestResponse(d01,postMethod,sendCustomerCmd,constant.SUCCESS);
                                var response = responseMsg.direct(req,getCmd,postCustomer.response);
a0638777   Nattapon Wongpaet   add try catch and...
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
                                log.addSuccessSummary(d01,postMethod+"_"+sendCustomerCmd,response.resultCode,response.developerMessage);
                            } else if(getCustomer.isDirect){
                                stats.receiveRestResponse(d01,method,sendCustomerCmd,constant.ERROR);
                                var response = responseMsg.direct(req,getCmd,getCustomer.response);
                                log.addErrorSummary(d01,method+"_"+sendCmd,getCustomer.response.resultCode,getCustomer.response.developerMessage);
                            } else {
                                stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR);
                                var response = responseMsg.error(req,getCmd,50000);
                            }

                        } else {
                            stats.receiveRestResponse(d01,method,sendCmd,constant.RESPONSERESULT.DATA_NOT_FOUND.developerMessage);
                            var response = responseMsg.error(req,getCmd,40401);
                            log.addErrorSummary(d01,method+"_"+sendCmd,response.resultCode,response.developerMessage);
                        }
                    } else if(getCustomer.isDirect){
                        stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR);
                        var response = responseMsg.direct(req,getCmd,getCustomer.response);
                        log.addErrorSummary(d01,method+"_"+sendCmd,getCustomer.response.resultCode,getCustomer.response.developerMessage);
                    } else {
                        stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR);
                        var response = responseMsg.error(req,getCmd,50000);
                    }
                    //else end flow
                    
                }
1f123eb1   Nattapon Wongpaet   update post membe...
118
            } else if(resultObj.resultCode.startsWith("404")){
27aed231   Nattapon Wongpaet   update post membe...
119
                //get customer
cf541103   Nattapon Wongpaet   update post custo...
120
                        //if get data exits post member card
a0638777   Nattapon Wongpaet   add try catch and...
121
122
                        //else end flow
                stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR);
27aed231   Nattapon Wongpaet   update post membe...
123
                var response = responseMsg.direct(req,getCmd,resultObj);
ad2fa4ed   Nattapon Wongpaet   update summarylog...
124
                log.addErrorSummary(d01,method+"_"+sendCmd,resultObj.resultCode,resultObj.developerMessage);
a0638777   Nattapon Wongpaet   add try catch and...
125
            } else if(resultObj.resultCode.startsWith("5")){
27aed231   Nattapon Wongpaet   update post membe...
126
                stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR);
1f123eb1   Nattapon Wongpaet   update post membe...
127
                var response = responseMsg.direct(req,getCmd,resultObj);
27aed231   Nattapon Wongpaet   update post membe...
128
                log.addErrorSummary(d01,method+"_"+sendCmd,resultObj.resultCode,resultObj.developerMessage);
a0638777   Nattapon Wongpaet   add try catch and...
129
130
131
132
133
134
135
136
            } else {
                stats.receiveRestResponse(d01,method,sendCmd,constant.ERROR);
                var response = responseMsg.error(req,getCmd,50000);
            }
        } else {
            stats.receiveRestResponse(d01,constant.METHOD.POST,sendCmd,"Error");
            var response = responseMsg.direct(req,getCmd,result.response);
            log.addErrorSummary(d01,method+"_"+sendCmd,response);
8221da7a   Nattapon Wongpaet   update flow membe...
137
        }
cf541103   Nattapon Wongpaet   update post custo...
138
    }
a0638777   Nattapon Wongpaet   add try catch and...
139
140

    log.logDetail.addOutput(req.body.clientName,postMethod+"_"+getCmd,constant.RESPONSE,response,response); 
8221da7a   Nattapon Wongpaet   update flow membe...
141
    res.status(200).json(response);
a0638777   Nattapon Wongpaet   add try catch and...
142
143
144
145
    next();
};

function validator(req,api)
9d8ce483   Nattapon Wongpaet   update url put
146
{
27aed231   Nattapon Wongpaet   update post membe...
147
    // console.log(req.body);
8221da7a   Nattapon Wongpaet   update flow membe...
148
    var list = [];
a0638777   Nattapon Wongpaet   add try catch and...
149
    list.push([true,"body","commandId","int"]);
8221da7a   Nattapon Wongpaet   update flow membe...
150
151
    list.push([true,"body","clientName","string"]);
    list.push([true,"body","cardId","string"]);
1f123eb1   Nattapon Wongpaet   update post membe...
152
    // list.push([true,"body","clientName","string"]);
8221da7a   Nattapon Wongpaet   update flow membe...
153
154
155
156
    // list.push([true,"body","firstName","string"]);
    // list.push([true,"body","lastName","string"]);
    // list.push([true,"body","mobile","string"]);
    // list.push([true,"body","emailAddress","string"]);
27aed231   Nattapon Wongpaet   update post membe...
157
    var err = validatorHelper(req,list,api)
8221da7a   Nattapon Wongpaet   update flow membe...
158

8221da7a   Nattapon Wongpaet   update flow membe...
159
    if(err.length > 0)
27aed231   Nattapon Wongpaet   update post membe...
160
161
162
163
164
165
166
167
168
        stats.receiveBadRequest(req.method,api);    
    else
        stats.receiveRequest(req.method,api);

    return err;
}

var getCustomerD01 = async function(data){

8221da7a   Nattapon Wongpaet   update flow membe...
169
170
    var responseData = {
        isErr : false,
27aed231   Nattapon Wongpaet   update post membe...
171
        isDataNotFound : false,
8221da7a   Nattapon Wongpaet   update flow membe...
172
        isDirect : false
27aed231   Nattapon Wongpaet   update post membe...
173
    };
8221da7a   Nattapon Wongpaet   update flow membe...
174
175

    const resultCustomer = await connection.requestJsonToD01(data.reqCustomer,data.cmd,data.method);
cf541103   Nattapon Wongpaet   update post custo...
176
177
    var resultObj = resultCustomer.response

1f123eb1   Nattapon Wongpaet   update post membe...
178
    if(typeof resultCustomer.err === 'undefined'){
cf541103   Nattapon Wongpaet   update post custo...
179
180
        if(resultObj.resultCode.startsWith("2")){
            if(resultObj.resultData && resultObj.resultData.length>0){
27aed231   Nattapon Wongpaet   update post membe...
181
182
                responseData.response = resultObj;
            } else {
cf541103   Nattapon Wongpaet   update post custo...
183
184
185
                responseData.response = resultObj;
                responseData.isDataNotFound = true;
            }
1f123eb1   Nattapon Wongpaet   update post membe...
186
        } else if(resultObj.resultCode.startsWith("404") || resultObj.resultCode.startsWith("5")){
afef30b0   Nattapon Wongpaet   fix bug detail lo...
187
            responseData.response = resultObj;
cf541103   Nattapon Wongpaet   update post custo...
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
            responseData.isDirect = true;
        } else {
            responseData.response = resultObj;
            responseData.isErr = true;
        }
    } else {
        responseData.response = resultObj;
        responseData.isErr = true;
    }

    return responseData;
}

var postCustomerD01 = async function(data){

    var responseData = {
        isErr : false,
        isDataNotFound : false,
        isDirect : false
    };

    const resultCustomer = await connection.requestJsonToD01(data.reqCustomer,data.cmd,data.method);
    var resultObj = resultCustomer.response

    if(typeof resultCustomer.err === 'undefined'){
1f123eb1   Nattapon Wongpaet   update post membe...
213
        if(resultObj.resultCode.startsWith("2")){
cf541103   Nattapon Wongpaet   update post custo...
214
215
            responseData.response = resultObj;
        } else if(resultObj.resultCode.startsWith("404") || resultObj.resultCode.startsWith("5")){
27aed231   Nattapon Wongpaet   update post membe...
216
217
            responseData.response = resultObj;
            responseData.isDirect = true;
cf541103   Nattapon Wongpaet   update post custo...
218
219
220
        } else {
            responseData.response = resultObj;
            responseData.isErr = true;
1f123eb1   Nattapon Wongpaet   update post membe...
221
        }
9d8ce483   Nattapon Wongpaet   update url put
222
    } else {
afef30b0   Nattapon Wongpaet   fix bug detail lo...
223
        responseData.response = resultObj;
cf541103   Nattapon Wongpaet   update post custo...
224
225
226
227
228
        responseData.isErr = true;
    }

    return responseData;
}
27aed231   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

1f123eb1   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

1f123eb1   Nattapon Wongpaet   update post membe...

3aa57883   Nattapon Wongpaet   fix bug

1f123eb1   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

a0638777   Nattapon Wongpaet   add try catch and...

27aed231   Nattapon Wongpaet   update post membe...

1f123eb1   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

1f123eb1   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

a0638777   Nattapon Wongpaet   add try catch and...

27aed231   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...

27aed231   Nattapon Wongpaet   update post membe...