dd6ce15e
sumatek
add customer
|
1
2
3
4
5
|
var env = process.env.NODE_ENV || 'development';
var cfg = require('../../config/config.js').get(env);
var stats = require('../helper/stats.js');
var request = require('request');
var messageSOAP = require('../helper/messageSOAP.js');
|
e2039477
Nattapon Wongpaet
update log
|
6
|
var log = require('../helper/log.js');
|
479b9d98
sumatek
update use constants
|
7
|
var constants = require('../helper/constants.js');
|
afef30b0
Nattapon Wongpaet
fix bug detail lo...
|
8
|
|
787e24ad
sumatek
update async func...
|
9
|
var connection = [];
|
dd6ce15e
sumatek
add customer
|
10
11
|
|
787e24ad
sumatek
update async func...
|
12
|
connection.requestSoapToSACF = async function (req,soap,cmd,myMethod) {
|
1b5ca11b
Nattapon Wongpaet
update vizcard
|
13
|
try {
|
c4a567d0
sumatek
merge
|
14
15
16
17
18
19
20
21
|
log.log("Connect to SACF")
var service = cfg.service.SACF;
var retry = service[myMethod+"_"+cmd+"_Retry"];
var params = {
url : service[myMethod+"_"+cmd+"_URL"],
body : messageSOAP.objectToSOAP(soap,cmd),
|
1b5ca11b
Nattapon Wongpaet
update vizcard
|
22
|
method : myMethod,
|
c4a567d0
sumatek
merge
|
23
24
25
26
|
timeout : cfg.service.SACF[myMethod+"_"+cmd+"_Timeout"]*1000
}
log.log("requestData : "+JSON.stringify(params))
|
dd6ce15e
sumatek
add customer
|
27
|
|
c4a567d0
sumatek
merge
|
28
|
if(!retry)
|
b5fbb064
Nattapon Wongpaet
update log debug
|
29
|
retry = cfg.Default_Retry;
|
c4a567d0
sumatek
merge
|
30
31
|
var objectData = {
|
60cef8c8
sumatek
update timeout
|
32
|
maxRetry : retry,
|
c4a567d0
sumatek
merge
|
33
34
35
36
37
|
curRetry : 1
}
var funS = function(){
stats.sendSACFRequest(service.Name,cmd);
|
72409a48
sumatek
update log
|
38
|
log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.REQUEST,params,soap);
|
c4a567d0
sumatek
merge
|
39
40
|
};
|
72409a48
sumatek
update log
|
41
42
43
44
|
var funStats = {
start : funS,
error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);}
};
|
80e43dc0
sumatek
update soap connect
|
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
var result = await asyncRequest(params,objectData,funStats);
return checkResponse(result,funStats);
}
catch(err) {
log.log(err);
var result = {
response : constants.RESPONSECONN.MESSAGE.ERROR
};
return result;
}
};
connection.requestJsonToD01 = async function (req,obj,cmd,myMethod) {
try {
log.log("Connect to D01")
var service = cfg.service.D01;
var retry = service[myMethod+"_"+cmd+"_Retry"];
if(!retry)
retry = cfg.Default_Retry;
var objectData = {
maxRetry : retry,
curRetry : 1
}
// JSON.stringify(json)
var params = {
url : service[myMethod+"_"+cmd+"_URL"],
body : obj,
method : myMethod,
timeout : service[myMethod+"_"+cmd+"_Timeout"]*1000
}
log.log("requestData : "+JSON.stringify(params))
var funStats = function(){
stats.sendRestRequest(service.Name,myMethod,cmd);
log.logDetail.addOutput(req,service.Name,myMethod+"_"+cmd,constants.Request,params,obj);
};
|
72409a48
sumatek
update log
|
92
93
|
var funStats = {
start : funStats,
|
c4a567d0
sumatek
merge
|
94
|
error : function(response){log.addErrorSummary(req,service.Name,myMethod+"_"+cmd,response.resultCode,response.resultDescription);}
|
dd6ce15e
sumatek
add customer
|
95
|
};
|
b5fbb064
Nattapon Wongpaet
update log debug
|
96
|
|
c4a567d0
sumatek
merge
|
97
|
|
60cef8c8
sumatek
update timeout
|
98
|
|
72409a48
sumatek
update log
|
99
100
|
var result = {};
result.response = {};
|
60cef8c8
sumatek
update timeout
|
101
|
result.response.resultData = [];
|
c4a567d0
sumatek
merge
|
102
103
|
|
e2039477
Nattapon Wongpaet
update log
|
104
|
|
c4a567d0
sumatek
merge
|
105
106
107
108
|
if(params.method == constants.METHOD.GET)
{
var genUrl = getUrl(params,service["searchRecordLimit"]);
if(genUrl.length > 1)
|
50ad7d6d
Nattapon Wongpaet
update get vizcar...
|
109
|
{
|
c4a567d0
sumatek
merge
|
110
|
console.log("multi Send");
|
dd6ce15e
sumatek
add customer
|
111
|
var multiSend = [];
|
50ad7d6d
Nattapon Wongpaet
update get vizcar...
|
112
|
for(var i=0;i<genUrl.length;i++)
|
9d8ce483
Nattapon Wongpaet
update url put
|
113
|
multiSend.push({url:genUrl[i],method:params.method});
|
c4a567d0
sumatek
merge
|
114
115
116
|
var parallelRes = await parallelRequest(multiSend,objectData,funStats);
|
60cef8c8
sumatek
update timeout
|
117
|
var dataRes = {};
|
afef30b0
Nattapon Wongpaet
fix bug detail lo...
|
118
119
120
|
for(var i=0;i<multiSend.length;i++)
{
// console.log("start loop");
|
c4a567d0
sumatek
merge
|
121
122
123
124
|
var loopRes = parallelRes[i];
if(loopRes.response)
{
|
60cef8c8
sumatek
update timeout
|
125
|
var data = JSON.parse(loopRes.response.body);
|
c4a567d0
sumatek
merge
|
126
127
128
129
|
dataRes[i] = {};
if(!data.resultCode)
dataRes[i].err = "Miss resultCode";
|
dd6ce15e
sumatek
add customer
|
130
|
|
c4a567d0
sumatek
merge
|
131
132
133
134
135
136
137
|
if(!data.resultDescription)
dataRes[i].err = "Miss resultDescription"
dataRes[i].data = data.resultData;
}
|
b5fbb064
Nattapon Wongpaet
update log debug
|
138
|
|
c4a567d0
sumatek
merge
|
139
|
}
|
60cef8c8
sumatek
update timeout
|
140
|
|
c4a567d0
sumatek
merge
|
141
|
for (var i = 0; i < multiSend.length; i++) {
|
72409a48
sumatek
update log
|
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
result.response.resultData = result.response.resultData.concat(dataRes[i].data);
if(dataRes[i].err)
result.err = dataRes[i].err;
}
if(!result.err)
{
result.response = constants.RESPONSECONN.MESSAGE.SUCCESS;
// result.response.resultCode = "20000";
// result.response.developerMessage = "Success";
}
}else
{
// console.log("single Send");
params.url = genUrl[0];
delete params.body;
var resultRes = await asyncRequest(params,objectData,funStats);
// console.log(resultRes);
if(resultRes.response)
{
|
80e43dc0
sumatek
update soap connect
|
167
168
|
var data = JSON.parse(resultRes.response.body);
result.response = data;
|
72409a48
sumatek
update log
|
169
170
171
172
173
174
175
176
177
178
179
|
} else {
result = resultRes;
}
}
} else if(params.method == constants.METHOD.POST) {
params.body = JSON.stringify(params.body);
var resultRes = await asyncRequest(params,objectData,funStats);
|
80e43dc0
sumatek
update soap connect
|
180
181
|
if(resultRes.response){
|
72409a48
sumatek
update log
|
182
183
184
185
186
|
result.response = JSON.parse(resultRes.body);
} else {
result = resultRes;
}
} else if(params.method == constants.METHOD.PUT) {
|
887b2ec5
Nattapon Wongpaet
update put customer
|
187
188
|
|
72409a48
sumatek
update log
|
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
params.body = JSON.stringify(params.body);
var resultRes = await asyncRequest(params,objectData,funStats);
if(resultRes.response){
result.response = JSON.parse(resultRes.body);
} else {
result = resultRes;
}
}
// console.log(result);
if(result.response)
{
if(!result.response.resultCode){
result.err = "Missing resultCode";
} else if(!result.response.resultDescription){
result.err = "Missing resultDescription";
}
|
887b2ec5
Nattapon Wongpaet
update put customer
|
210
211
212
213
214
215
216
217
218
219
220
|
}
return checkResponse(result,funStats);
}
catch(err) {
log.log(err);
var result = {
response : constants.RESPONSECONN.MESSAGE.ERROR
};
|
72409a48
sumatek
update log
|
221
222
|
return result;
|
72409a48
sumatek
update log
|
223
224
225
226
|
}
};
|
887b2ec5
Nattapon Wongpaet
update put customer
|
227
|
|
72409a48
sumatek
update log
|
228
229
230
231
232
233
|
async function parallelRequest(multiParams,objectData,funStat)
{
var promises = [];
for(var i=0;i<multiParams.length;i++)
|
887b2ec5
Nattapon Wongpaet
update put customer
|
234
|
promises.push(asyncRequest (multiParams[i],objectData,funStat));
|
72409a48
sumatek
update log
|
235
236
237
238
239
240
241
|
var res = await Promise.all(promises);
// for(var i=0;i<res.length;i++)
// {
// if(!res[i].err)
// stats.receiveResponse(node,cmd,"Success");
|
887b2ec5
Nattapon Wongpaet
update put customer
|
242
|
// }
|
72409a48
sumatek
update log
|
243
244
245
246
247
248
249
|
return res;
}
function asyncRequest (params = {},objectData,funStat) {
|
887b2ec5
Nattapon Wongpaet
update put customer
|
250
|
// console.log(objectData);
|
72409a48
sumatek
update log
|
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
|
funStat.start();
// console.log("Start : "+new Date().toISOString());
return new Promise((resolve, reject) => {
request(params, function (error, response, body) {
if (error) {
if( objectData.maxRetry == objectData.curRetry-1)
{
resolve({
'body' : body,
'err' : error
});
}else
{
|
c4a567d0
sumatek
merge
|
267
|
var errRes = {};
|
a55a3d02
Nattapon Wongpaet
update post custo...
|
268
|
log.log(error,'error');
|
c4a567d0
sumatek
merge
|
269
|
if(error.code == constants.RESPONSECONN.STATS.ETIMEDOUT){
|
3cac9636
Nattapon Wongpaet
update post customer
|
270
|
errRes.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT;
|
c4a567d0
sumatek
merge
|
271
272
|
} else if(error.code == constants.RESPONSECONN.STATS.ECONNREFUSED){
errRes.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED;
|
fbd30c50
sumatek
update fix bug ur...
|
273
|
} else if(error.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){
|
9354f8c5
sumatek
fix bug
|
274
|
errRes.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT;
|
c4a567d0
sumatek
merge
|
275
276
|
} else {
errRes.response = constants.RESPONSECONN.MESSAGE.ERROR;
|
b77690fa
Nattapon Wongpaet
update post custo...
|
277
278
279
280
281
282
283
|
}
// console.log("retry "+objectData.curRetry);
funStat.error(errRes);
objectData.curRetry++;
resolve(asyncRequest(params,objectData,funStat));
}
|
c4a567d0
sumatek
merge
|
284
|
|
a1f044d9
sumatek
update parallel
|
285
|
|
c4a567d0
sumatek
merge
|
286
287
288
289
290
291
292
293
294
|
} else {
// stats.receiveResponse(node,cmd,"Success");
resolve({
'body' : body,
'response' : response
});
}
|
a1f044d9
sumatek
update parallel
|
295
|
});
|
c4a567d0
sumatek
merge
|
296
297
298
299
300
|
});
};
function getUrl(params,limit)
{
|
887b2ec5
Nattapon Wongpaet
update put customer
|
301
302
|
var returnData = [];
var url = params.url;
|
c4a567d0
sumatek
merge
|
303
|
var fields = "";
|
a1f044d9
sumatek
update parallel
|
304
|
var filter = {
|
c4a567d0
sumatek
merge
|
305
306
|
base : "",
multi : []
|
a1f044d9
sumatek
update parallel
|
307
|
};
|
c4a567d0
sumatek
merge
|
308
309
|
|
a1f044d9
sumatek
update parallel
|
310
|
// params.body = {};
|
c4a567d0
sumatek
merge
|
311
|
// params.body.a = "aaa";
|
fbd30c50
sumatek
update fix bug ur...
|
312
|
// params.body.b = "bbb";
|
c4a567d0
sumatek
merge
|
313
|
// params.body.papa = [];
|
fbd30c50
sumatek
update fix bug ur...
|
314
|
// params.body.papa.push("1");
|
b77690fa
Nattapon Wongpaet
update post custo...
|
315
|
// params.body.papa.push("2");
|
c4a567d0
sumatek
merge
|
316
317
|
// params.body.commandId = [];
// params.body.commandId.push("1");
|
a1f044d9
sumatek
update parallel
|
318
319
|
// params.body.commandId.push("2");
// params.body.commandId.push("3");
|
c4a567d0
sumatek
merge
|
320
321
|
// params.body.commandId.push("4");
// params.body.commandId.push("5");
|
fbd30c50
sumatek
update fix bug ur...
|
322
|
// params.body.commandId.push("6");
|
c4a567d0
sumatek
merge
|
323
324
|
// params.body.commandId.push("7");
// params.body.commandId.push("8");
|
fbd30c50
sumatek
update fix bug ur...
|
325
326
|
// params.body.c = "ccc";
// params.body.fields = "a,b,c,d";
|
c4a567d0
sumatek
merge
|
327
|
// console.log(params.body);
|
a1f044d9
sumatek
update parallel
|
328
|
if(params.body)
|
c4a567d0
sumatek
merge
|
329
330
331
|
{
var first = true;
for (key in params.body) {
|
fbd30c50
sumatek
update fix bug ur...
|
332
|
|
c4a567d0
sumatek
merge
|
333
334
335
|
if(key == "fields")
fields = getFields(params.body.fields,first);
else
|
9354f8c5
sumatek
fix bug
|
336
|
filter = getFilter(filter,key,params.body[key]);
|
c4a567d0
sumatek
merge
|
337
|
|
a1f044d9
sumatek
update parallel
|
338
|
first = false;
|
c4a567d0
sumatek
merge
|
339
340
341
342
|
}
if(first)
fields += "?limit="+limit;
|
72409a48
sumatek
update log
|
343
344
|
else
fields += "&limit="+limit;
|
c4a567d0
sumatek
merge
|
345
|
|
72409a48
sumatek
update log
|
346
347
348
349
350
|
}
if(filter.multi.length > 0)
{
//have multi
|
c4a567d0
sumatek
merge
|
351
|
|
72409a48
sumatek
update log
|
352
353
354
|
var careData = filter.multi[0];
// console.log(freeSpace);
|
a1f044d9
sumatek
update parallel
|
355
356
357
|
for(var i=0;i<filter.multi.length;i++)
{
if(filter.multi[i].length > careData.length)
|
1f123eb1
Nattapon Wongpaet
update post membe...
|
358
|
{
|
afef30b0
Nattapon Wongpaet
fix bug detail lo...
|
359
|
filter.base = filter.base+"(|"+careData.data+")";
|
1f123eb1
Nattapon Wongpaet
update post membe...
|
360
|
careData = filter.multi[i];
|
72409a48
sumatek
update log
|
361
362
363
364
365
366
367
368
|
}
}
var myUrl = url+"?filter=("+filter.base+")"+fields;
var freeSpace = cfg.Uri_length - myUrl.length;
|
1f123eb1
Nattapon Wongpaet
update post membe...
|
369
370
|
var arr = careData.data.split(")(");
|
9d8ce483
Nattapon Wongpaet
update url put
|
371
|
|
1f123eb1
Nattapon Wongpaet
update post membe...
|
372
|
for(var j=0;j<arr.length;j++)
|
c4a567d0
sumatek
merge
|
373
|
{
|
a1f044d9
sumatek
update parallel
|
374
|
if(j==0)
|
72409a48
sumatek
update log
|
375
376
377
378
|
arr[j] = arr[j].substring(1);
if(j==arr.length-1)
arr[j] = arr[j].substring(0,arr[j].length-1);
|
9d8ce483
Nattapon Wongpaet
update url put
|
379
|
arr[j] = "("+arr[j]+")";
|
72409a48
sumatek
update log
|
380
381
382
383
384
|
// returnData.push(url+"?filter=("+newBasefilter+"(|"+arr[j]+")"+fields);
}
returnData = arrayUrl(returnData,url,filter.base,fields,freeSpace,arr);
|
a1f044d9
sumatek
update parallel
|
385
|
|
9354f8c5
sumatek
fix bug
|
386
|
|
f9d80b22
Nattapon Wongpaet
update header viz...
|
387
|
}else
|
a1f044d9
sumatek
update parallel
|
388
|
{
|
72409a48
sumatek
update log
|
389
390
391
392
393
394
395
396
|
var myUrl = url+"?filter=("+filter.base+")"+fields;
returnData.push(myUrl);
}
// console.log(url);
// console.log(filter);
// console.log(fields);
|
3cac9636
Nattapon Wongpaet
update post customer
|
397
|
for(var i=0;i<returnData.length;i++)
|
72409a48
sumatek
update log
|
398
399
400
|
log.log("URL "+[i+1]+" : "+returnData[i]);
return returnData;
|
5198016b
sumatek
update build message
|
401
|
}
|
9354f8c5
sumatek
fix bug
|
402
|
|
c4a567d0
sumatek
merge
|
403
404
|
function getFields(fields,first)
{
|
a1f044d9
sumatek
update parallel
|
405
|
var returnData;
|
c4a567d0
sumatek
merge
|
406
407
408
409
|
var prefix;
if(first)
prefix = "?fields=";
else
|
3cac9636
Nattapon Wongpaet
update post customer
|
410
|
prefix = "&fields=";
|
c4a567d0
sumatek
merge
|
411
|
|
dd6ce15e
sumatek
add customer
|
412
413
|
returnData = prefix+fields;
|
a1f044d9
sumatek
update parallel
|
414
|
return returnData;
|
479b9d98
sumatek
update use constants
|
415
|
}
|
60cef8c8
sumatek
update timeout
|
416
|
|
a1f044d9
sumatek
update parallel
|
417
|
function getFilter(filter,key,data)
|
787e24ad
sumatek
update async func...
|
418
419
420
|
{
// console.log(key);
|
a1f044d9
sumatek
update parallel
|
421
|
// console.log(newfilter);
|
60cef8c8
sumatek
update timeout
|
422
|
if(!Array.isArray(data))
|
787e24ad
sumatek
update async func...
|
423
424
|
{
|
60cef8c8
sumatek
update timeout
|
425
426
427
|
// var newfilter = {
// data : "("+key+"="+data+")",
// type : "single",
|
fbd30c50
sumatek
update fix bug ur...
|
428
429
430
431
432
|
// length : ("("+key+"="+data+")").length
// };
if(filter.base != "")
filter.base = filter.base+"("+key+"="+data+")";
|
a1f044d9
sumatek
update parallel
|
433
|
else
|
60cef8c8
sumatek
update timeout
|
434
|
filter.base = "&"+filter.base+"("+key+"="+data+")";
|
787e24ad
sumatek
update async func...
|
435
|
}else
|
fbd30c50
sumatek
update fix bug ur...
|
436
|
{
|
787e24ad
sumatek
update async func...
|
437
438
|
var line = "";
for(var i=0;i<data.length;i++)
|
a1f044d9
sumatek
update parallel
|
439
440
|
{
line += "("+key+"="+data[i]+")";
|
60cef8c8
sumatek
update timeout
|
441
442
443
|
}
var newfilter = {
|
fbd30c50
sumatek
update fix bug ur...
|
444
|
data : line,
|
dd6ce15e
sumatek
add customer
|
445
|
length : line.length
|
787e24ad
sumatek
update async func...
|
446
|
};
|
dd6ce15e
sumatek
add customer
|
447
448
449
|
}
if(newfilter)
|
fbd30c50
sumatek
update fix bug ur...
|
450
451
452
|
filter.multi.push(newfilter);
return filter;
}
|
dd6ce15e
sumatek
add customer
|
453
|
|
60cef8c8
sumatek
update timeout
|
454
|
function arrayUrl(arrUrl,url,filter,fields,freeSpace,arrData)
|
72409a48
sumatek
update log
|
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
|
{
var loopUrl = "";
var loopSpace = freeSpace;
for(var i=0;i<arrData.length;i++)
{
if(loopSpace > (arrData[i].length+3))
{
loopUrl = loopUrl + arrData[i];
loopSpace = loopSpace - arrData[i].length;
}else
{
if(loopUrl != "")
{
arrUrl.push(url+"?filter=("+filter+"(|"+loopUrl+")"+fields);
loopUrl = arrData[i];
loopSpace = freeSpace - arrData[i].length;
}
}
}
|
787e24ad
sumatek
update async func...
|
477
|
|
60cef8c8
sumatek
update timeout
|
478
479
|
if(loopUrl != "")
arrUrl.push(url+"?filter=("+filter+"(|"+loopUrl+")"+fields);
|
72409a48
sumatek
update log
|
480
481
482
483
484
485
486
487
|
return arrUrl;
}
function checkResponse(result,funStats)
{
if(result.err)
{
log.log(result.err,'error');
|
dd6ce15e
sumatek
add customer
|
488
|
if(result.err.code == constants.RESPONSECONN.STATS.ETIMEDOUT){
|
72409a48
sumatek
update log
|
489
490
491
492
493
494
|
result.response = constants.RESPONSECONN.MESSAGE.ETIMEDOUT;
// result.response.resultCode = "50003";
// result.response.resultDescription = "Timeout";
} else if(result.err.code == constants.RESPONSECONN.STATS.ECONNREFUSED){
result.response = constants.RESPONSECONN.MESSAGE.ECONNREFUSED;
// result.response.resultCode = "50002";
|
887b2ec5
Nattapon Wongpaet
update put customer
|
495
|
// result.response.resultDescription = "Reject";
|
72409a48
sumatek
update log
|
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
|
} else if(result.err.code == constants.RESPONSECONN.STATS.ESOCKETTIMEDOUT){
result.response = constants.RESPONSECONN.MESSAGE.ESOCKETTIMEDOUT;
} else {
if(result.err.resultDescription && result.err.resultDescription.indexOf(constants.RESPONSECONN.STATS.MISSING) != -1){
result.response.resultCode = constants.RESPONSERESULT.MISSING_INVALID.resultCode;
result.response.resultDescription = result.err;
} else {
result.response = constants.RESPONSECONN.MESSAGE.ERROR;
}
}
funStats.error(result.response)
}else
log.log(JSON.stringify(result));
return result;
|
dd6ce15e
sumatek
add customer
|
511
512
513
|
}
module.exports = connection;
|
9d8ce483
Nattapon Wongpaet
update url put
|
|
|
887b2ec5
Nattapon Wongpaet
update put customer
|
|
|
9d8ce483
Nattapon Wongpaet
update url put
|
|
|
887b2ec5
Nattapon Wongpaet
update put customer
|
|
|
9d8ce483
Nattapon Wongpaet
update url put
|
|
|
9d8ce483
Nattapon Wongpaet
update url put
|
|
|
5198016b
sumatek
update build message
|
|
|
81e85e64
sumatek
update customer
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
81e85e64
sumatek
update customer
|
|
|
5198016b
sumatek
update build message
|
|
|
d46c5802
sumatek
up date for conne...
|
|
|
03f3be38
Nattapon Wongpaet
fix bugs
|
|
|
84646faa
sumatek
update connection
|
|
|
03f3be38
Nattapon Wongpaet
fix bugs
|
|
|
81e85e64
sumatek
update customer
|
|
|
79d9e534
Nattapon Wongpaet
update post customer
|
|
|
81e85e64
sumatek
update customer
|
|
|
5198016b
sumatek
update build message
|
|
|
79d9e534
Nattapon Wongpaet
update post customer
|
|
|
5198016b
sumatek
update build message
|
|
|
79d9e534
Nattapon Wongpaet
update post customer
|
|
|
81e85e64
sumatek
update customer
|
|
|
81e85e64
sumatek
update customer
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
5198016b
sumatek
update build message
|
|
|
fbd30c50
sumatek
update fix bug ur...
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
5198016b
sumatek
update build message
|
|
|
81e85e64
sumatek
update customer
|
|
|
5198016b
sumatek
update build message
|
|
|
81e85e64
sumatek
update customer
|
|
|
fbd30c50
sumatek
update fix bug ur...
|
|
|
5198016b
sumatek
update build message
|
|
|
a1f044d9
sumatek
update parallel
|
|
|
81e85e64
sumatek
update customer
|
|
|
b77690fa
Nattapon Wongpaet
update post custo...
|
|
|
81e85e64
sumatek
update customer
|
|
|
dd6ce15e
sumatek
add customer
|
|
|
79d9e534
Nattapon Wongpaet
update post customer
|
|
|
81e85e64
sumatek
update customer
|
|
|
5198016b
sumatek
update build message
|
|
|
d46c5802
sumatek
up date for conne...
|
|
|
5198016b
sumatek
update build message
|
|
|
d46c5802
sumatek
up date for conne...
|
|
|
5198016b
sumatek
update build message
|
|
|
fbd30c50
sumatek
update fix bug ur...
|
|
|
5198016b
sumatek
update build message
|
|
|
3aa57883
Nattapon Wongpaet
fix bug
|
|
|
5198016b
sumatek
update build message
|
|
|
81e85e64
sumatek
update customer
|
|
|
dd6ce15e
sumatek
add customer
|
|
|
72409a48
sumatek
update log
|
|
|
479b9d98
sumatek
update use constants
|
|
|
dd6ce15e
sumatek
add customer
|
|
|