Commit 10577ce2af753d2acb02f4211410e972dd40bc8c

Authored by Adhidarma Hadiwinoto
1 parent fea1167446
Exists in master

insertTaskToMongoDb

Showing 1 changed file with 114 additions and 28 deletions Side-by-side Diff

... ... @@ -52,10 +52,9 @@ function start(options) {
52 52 antiSameDayDupe.init(options);
53 53 }
54 54  
55   -function callbackReport(requestId, responseCode, msg) {
  55 +function callbackReport(requestId, responseCode, msg, responseToLog) {
56 56 if (responseCode != '68') {
57   - resendDelay.cancel(requestId);
58   -
  57 + resendDelay.cancel(requestId)
59 58 } else {
60 59 taskHistory.get(requestId, function(err, task) {
61 60 if (task) {
... ... @@ -64,7 +63,7 @@ function callbackReport(requestId, responseCode, msg) {
64 63 });
65 64 }
66 65  
67   - _callbackReport(requestId, responseCode, msg);
  66 + aaa.callbackReportWithPushToMongoDb(requestId, responseCode, msg, null, responseToLog);
68 67 }
69 68  
70 69 function parseResponse(task, response) {
... ... @@ -80,45 +79,130 @@ function parseResponse(task, response) {
80 79  
81 80 logger.verbose('Response parsed', {result: result, task: task});
82 81  
83   - var rc = '68';
84   -
85   - var partnerResponseCode;
86   - try {
87   - partnerResponseCode = result.hpay.responseCode[0];
88   - } catch(e) {}
  82 + var st24rc = '68';
89 83  
90   - var partnerMessage = '';
91   - try {
92   - partnerMessage = result.hpay.responseMessage[0];
93   - } catch(e) {}
  84 + var voucherSerialNumber;
  85 + var trxId = getTrxId(result);
  86 + var responseCode = getResponseCode(result);
  87 + var responseMessage = getResponseMessage(result);
  88 + var nilaiPulsa = getNilaiPulsa(result);
  89 + var noHp = getNoHp(result);
94 90  
95   - if (partnerResponseCode == '00') {
96   - rc = '00';
  91 + if (responseCode == '00') {
  92 + st24rc = '00';
  93 + voucherSerialNumber = getVoucherSerialNumber(result);
97 94 }
98   - else if ((partnerResponseCode == '99') && (partnerMessage == 'Member Not Found')) {
99   - rc = '40';
  95 + else if ((responseCode == '99') && (responseMessage == 'Member Not Found')) {
  96 + st24rc = '40';
100 97 }
101   - else if (partnerResponseCode == '99') {
102   - rc = '68';
  98 + else if (responseCode == '99') {
  99 + st24rc = '68';
103 100 }
104 101 else {
105   - rc = '40';
  102 + st24rc = '40';
106 103 }
107 104  
108 105 var msg = '';
109   - if (partnerResponseCode) {
110   - msg = partnerResponseCode;
  106 + msg += ' responseCode: ' + responseCode;
  107 + msg += ' responseMessage: ' + responseMessage;
  108 + msg += ' nilaiPulsa: ' + nilaiPulsa;
  109 + msg += ' noHp: ' + noHp;
  110 + msg += ' trxId: ' + trxId;
  111 +
  112 + if (voucherSerialNumber) {
  113 + msg = 'SN=' + voucherSerialNumber + ';' + msg + ' voucherSerialNumber: ' + voucherSerialNumber;
111 114 }
112 115  
113   - if (partnerMessage) {
114   - msg = msg + ' ' + partnerMessage;
  116 + var responseToLog = {
  117 + raw: response,
  118 + parsed: {
  119 + MESSAGE: msg
  120 + }
115 121 }
116   - msg = msg.trim();
117 122  
118   - callbackReport(task.requestId, rc, msg);
  123 + callbackReport(task.requestId, st24rc, msg, responseToLog);
119 124 });
120 125 }
121 126  
  127 +function getNilaiPulsa(data) {
  128 + var result;
  129 + try {
  130 + result = data.hpay.content.nilaiPulsa[0];
  131 + }
  132 + catch(e) {
  133 + //logger.warn('Exception on getNilaiPulsa', {data: data});
  134 + return;
  135 + }
  136 +
  137 + return result;
  138 +}
  139 +
  140 +function getNoHp(data) {
  141 + var result;
  142 + try {
  143 + result = data.hpay.content.noHp[0];
  144 + }
  145 + catch(e) {
  146 + //logger.warn('Exception on getNoHp', {data: data});
  147 + return;
  148 + }
  149 +
  150 + return result;
  151 +}
  152 +
  153 +function getVoucherSerialNumber(data) {
  154 + var result;
  155 + try {
  156 + result = data.hpay.content.voucherSerialNumber[0];
  157 + }
  158 + catch(e) {
  159 + //logger.warn('Exception on getVoucherSerialNumber', {data: data});
  160 + return;
  161 + }
  162 +
  163 + return result;
  164 +}
  165 +
  166 +function getTrxId(data) {
  167 + var result;
  168 + try {
  169 + result = data.hpay.trxId[0];
  170 + }
  171 + catch(e) {
  172 + //logger.warn('Exception on getTrxId', {data: data});
  173 + return;
  174 + }
  175 +
  176 + return result;
  177 +}
  178 +
  179 +function getResponseCode(data) {
  180 + var result;
  181 + try {
  182 + result = data.hpay.responseCode[0];
  183 + }
  184 + catch(e) {
  185 + logger.warn('Exception on getResponseCode', {data: data});
  186 + return;
  187 + }
  188 +
  189 + return result;
  190 +}
  191 +
  192 +function getResponseMessage(data) {
  193 + var result;
  194 + try {
  195 + result = data.hpay.responseMessage[0];
  196 + }
  197 + catch(e) {
  198 + logger.warn('Exception on getResponseMessage', {data: data});
  199 + return;
  200 + }
  201 +
  202 + return result;
  203 +}
  204 +
  205 +
122 206 function requestToPartner(methodName, task) {
123 207 var payload = createPayload(methodName, task, config.h2h_out.userid, config.h2h_out.noid, config.h2h_out.password);
124 208 if (!payload) {
... ... @@ -130,7 +214,7 @@ function requestToPartner(methodName, task) {
130 214 url: config.h2h_out.partner,
131 215 method: "POST",
132 216 body: payload,
133   -
  217 +
134 218 }
135 219  
136 220 logger.verbose('Requesting to partner', {methodName: methodName, task: task, requestOpts: requestOpts});
... ... @@ -160,6 +244,8 @@ function topupRequest(task) {
160 244 return;
161 245 }
162 246  
  247 + aaa.insertTaskToMongoDb(task);
  248 +
163 249 antiSameDayDupe.check(task, _topupRequest, onSameDayDupe, _topupStatus);
164 250 }
165 251