Commit 9cd4db4fedf501fe56490a69340d1db9709c9dca

Authored by Nattapon Wongpaet
1 parent 877e4be9
Exists in master and in 1 other branch develop

update mockup

@@ -294,6 +294,7 @@ app.post('/api/shop-cdns/upload', (req, res) => { @@ -294,6 +294,7 @@ app.post('/api/shop-cdns/upload', (req, res) => {
294 }); 294 });
295 295
296 var multipart = require('connect-multiparty'); 296 var multipart = require('connect-multiparty');
  297 +const { sortedUniq, result, reject } = require('lodash');
297 var multipartMiddleware = multipart({ uploadDir: './img' }); 298 var multipartMiddleware = multipart({ uploadDir: './img' });
298 299
299 app.post('/api/shop-cdns/upload2', multipartMiddleware, async (req, res) => { 300 app.post('/api/shop-cdns/upload2', multipartMiddleware, async (req, res) => {
@@ -391,6 +392,8 @@ app.post('/privilege/v1/history/delete', require('./privilege').deleteCustomer); @@ -391,6 +392,8 @@ app.post('/privilege/v1/history/delete', require('./privilege').deleteCustomer);
391 392
392 app.post('/v1/MVP/enq/getMobileOfferInventory/', require('./true').getMobileOfferInventory); 393 app.post('/v1/MVP/enq/getMobileOfferInventory/', require('./true').getMobileOfferInventory);
393 394
  395 +app.get('/api/callback', require('./line').callback);
  396 +
394 app.get('/api/random/leader', function (req, res) { 397 app.get('/api/random/leader', function (req, res) {
395 const months = ["เกมส์", "โน๊ต setup", "โน๊ต วัศรุต", "แบงค์", "มอส", "ปิ๊ค", "เต้นพอไม่ต้องตื่น", "เปา", "นัท", "kik", "new", "ann","na", "boky", "eve", "miki", "pla", "sugar"]; 398 const months = ["เกมส์", "โน๊ต setup", "โน๊ต วัศรุต", "แบงค์", "มอส", "ปิ๊ค", "เต้นพอไม่ต้องตื่น", "เปา", "นัท", "kik", "new", "ann","na", "boky", "eve", "miki", "pla", "sugar"];
396 // const months = [ "ann"]; 399 // const months = [ "ann"];
@@ -413,6 +416,76 @@ console.log(object); @@ -413,6 +416,76 @@ console.log(object);
413 res.send(object); 416 res.send(object);
414 }) 417 })
415 418
  419 +app.get('/api/parallel/request', async function (req, res) {
  420 + let dataList = ['001','002','003','004','005','006','007','008','009','010','011','012','013','014','015','016','017','018','019','020']
  421 +
  422 + let response = await completelyReq(dataList)
  423 + console.log('response to client', response)
  424 +
  425 + res.send(response)
  426 +})
  427 +
  428 +var parallelLimit = require('run-parallel-limit')
  429 +
  430 +async function completelyReq(dataList) {
  431 + let limit = 10
  432 + let length = dataList.length > limit ? limit : dataList.length;
  433 + let tempList = []
  434 + for(let i=0; i<dataList.length; i++) {
  435 + // console.log(i)
  436 + // console.log(dataList[i])
  437 + tempList.push((cb) => {
  438 + reqFunc(dataList[i], )
  439 + });
  440 + // dataList.shift();
  441 + }
  442 +
  443 + return new Promise( resolve => {
  444 + parallelLimit(tempList, 10, function (err, results) {
  445 + if(err) {console.log(err); reject(err)};
  446 + console.log(results)
  447 + resolve(results)
  448 + })
  449 + })
  450 +
  451 + // return await Promise.all(tempList);
  452 +}
  453 +
  454 +function reqFunc(arg, cb) {
  455 + // console.log(tempList)
  456 + console.log('send req ', arg, new Date())
  457 + unirest
  458 + .post('http://mockbin.com/request')
  459 + .headers({'Accept': 'application/json', 'Content-Type': 'application/json'})
  460 + .send({ "parameter": 23, "foo": "bar", "seq": arg })
  461 + .then((response) => {
  462 + // console.log(response.body.postData.text)
  463 + // let delay = Math.floor(Math.random()*10000)
  464 + console.log('recieve response ' , response.body.postData.text, new Date())
  465 + cb(null, response.body.postData.text)
  466 +
  467 + // setTimeout(function () {
  468 + // cb(null, response.body.postData.text)
  469 + // }, 100)
  470 + })
  471 +}
  472 +
  473 +// function check(data, dataList, tempList) {
  474 +// return new Promise(async (resolve, reject) => {
  475 +// // console.log('tempList.length', tempList.length)
  476 +// if(tempList.length == 20) {
  477 +// // let allResponse = await Promise.all(tempList);
  478 +// // console.log(allResponse)
  479 +// resolve(tempList)
  480 +// } else {
  481 +// console.log(tempList)
  482 +// tempList.push(reqFunc(dataList[0], dataList, tempList))
  483 +// dataList.shift();
  484 +// }
  485 +// })
  486 +
  487 +// }
  488 +
416 app.get('/linenoti', require('./line').lineNoti) 489 app.get('/linenoti', require('./line').lineNoti)
417 490
418 app.listen(port, () => console.log('app listening on port ' + port + '!')) 491 app.listen(port, () => console.log('app listening on port ' + port + '!'))
419 \ No newline at end of file 492 \ No newline at end of file
@@ -111,7 +111,7 @@ module.exports.verifyReceipt = async (req, res) =&gt; { @@ -111,7 +111,7 @@ module.exports.verifyReceipt = async (req, res) =&gt; {
111 } 111 }
112 ], 112 ],
113 "environment":"Sandbox", 113 "environment":"Sandbox",
114 - "latest_receipt":"CshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fb==", 114 + "latest_receipt":"CshX8fbCshX8fbCshX8fbCsh==",
115 "pending_renewal_info":[], 115 "pending_renewal_info":[],
116 "receipt":{ 116 "receipt":{
117 "in_app":[], 117 "in_app":[],
@@ -149,7 +149,7 @@ module.exports.verifyReceipt = async (req, res) =&gt; { @@ -149,7 +149,7 @@ module.exports.verifyReceipt = async (req, res) =&gt; {
149 "latest_receipt_info": [], 149 "latest_receipt_info": [],
150 "pending_renewal_info": [], 150 "pending_renewal_info": [],
151 "receipt": {}, 151 "receipt": {},
152 - "status": "1", 152 + "status": "21007",
153 "environment": "Sandbox" 153 "environment": "Sandbox"
154 } 154 }
155 155
@@ -157,6 +157,10 @@ module.exports.verifyReceipt = async (req, res) =&gt; { @@ -157,6 +157,10 @@ module.exports.verifyReceipt = async (req, res) =&gt; {
157 retrySuccess -= 1 157 retrySuccess -= 1
158 res.send(responseError) 158 res.send(responseError)
159 } else { 159 } else {
160 - res.send(responseError) 160 + if(req.headers['x-redirect-url'] == 'https://sandbox.itunes.apple.com/verifyReceipt') {
  161 + res.send(response)
  162 + } else {
  163 + res.send(responseError)
  164 + }
161 } 165 }
162 } 166 }
@@ -256,7 +256,7 @@ module.exports.getAddress = async (req, res) =&gt; { @@ -256,7 +256,7 @@ module.exports.getAddress = async (req, res) =&gt; {
256 "resultDescription": "Data not found" 256 "resultDescription": "Data not found"
257 } 257 }
258 258
259 - res.send(response) 259 + // res.send(response)
260 } 260 }
261 261
262 module.exports.postAddress = async (req, res) => { 262 module.exports.postAddress = async (req, res) => {
@@ -30,4 +30,33 @@ module.exports.lineNoti = async (req, res) =&gt; { @@ -30,4 +30,33 @@ module.exports.lineNoti = async (req, res) =&gt; {
30 }); 30 });
31 }); 31 });
32 32
  33 +}
  34 +
  35 +module.exports.callback = async (req, res) => {
  36 + console.log('===== GET lineCallback =====')
  37 + console.log('url', req.originalUrl);
  38 + console.log('headers', req.headers);
  39 + console.log('query', req.query);
  40 + console.log('params', req.params);
  41 + console.log('body', req.body);
  42 +
  43 + unirest.post('https://api.line.me/oauth2/v2.1/token')
  44 + .form({
  45 + grant_type:"authorization_code",
  46 + code:req.query.code,
  47 + redirect_uri:"http://127.0.0.1:3002/api/callback",
  48 + client_id:"1655116583",
  49 + client_secret:"90ada7fc7b535e514dfa3d84c20c33ff"
  50 + }).end(function (response) {
  51 + unirest.get('https://api.line.me/v2/profile')
  52 + .headers({
  53 + Authorization: `Bearer ${response.body.access_token}`
  54 + }).end(function (response) {
  55 + res.send({
  56 + userId : response.body.userId,
  57 + date: req.query.state
  58 + })
  59 + });
  60 + });
  61 +
33 } 62 }
34 \ No newline at end of file 63 \ No newline at end of file
package-lock.json
@@ -2121,6 +2121,11 @@ @@ -2121,6 +2121,11 @@
2121 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 2121 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
2122 "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 2122 "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
2123 }, 2123 },
  2124 + "run-parallel-limit": {
  2125 + "version": "1.0.6",
  2126 + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.0.6.tgz",
  2127 + "integrity": "sha512-yFFs4Q2kECi5mWXyyZj3UlAZ5OFq5E07opABC+EmhZdjEkrxXaUwFqOaaNF4tbayMnBxrsbujpeCYTVjGufZGQ=="
  2128 + },
2124 "safe-buffer": { 2129 "safe-buffer": {
2125 "version": "5.1.2", 2130 "version": "5.1.2",
2126 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2131 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
24 "multiparty": "^4.2.1", 24 "multiparty": "^4.2.1",
25 "n_": "^2.0.2", 25 "n_": "^2.0.2",
26 "node-json-config": "0.0.5", 26 "node-json-config": "0.0.5",
  27 + "run-parallel-limit": "^1.0.6",
27 "unirest": "^0.6.0" 28 "unirest": "^0.6.0"
28 } 29 }
29 } 30 }