const express = require('express') const app = express() const bodyParser = require('body-parser') const configPartnerList = require('./config_partner.json'); const PartnerManager = require('./req_partner_manager'); let moment = require('moment') let unirest = require('unirest') let request = require('request') let cors = require('cors') let toXML = require('jstoxml'); // var mongoose = require('mongoose'); // mongoose.connect('mongodb://10.1.2.146:27018/test'); // var MongoClient = require('mongodb').MongoClient; // var dburl = "mongodb://10.1.2.144:27018/test"; // MongoClient.connect(dburl, function(err, db) { // if (err) { // throw err; // } // console.log('db connected'); // db.close(); // }); const port = 3002 app.use(cors()) app.use((req, res, next) => { console.log('incomming url: ',req.originalUrl) next() }) app.post('/parse', bodyParser.text('*/*'), async (req, res) => { console.log('test', req.body) console.log('test', req.headers) try { JSON.parse(req.body) } catch (e) { } res.send(result) }); app.use(bodyParser.urlencoded()); app.use(bodyParser.json()); app.post('/apiRequest', (req, res) => { console.log(req.params.apiRequest) console.log(req.originalUrl); console.log(req.url) let partnerCode = req.body.partnerCode let configPartner = null; if (Array.isArray(configPartnerList.partner)) { for (let partner of configPartnerList.partner) { if (partnerCode == partner.partnerCode) { configPartner = partner; break; } } } if (configPartner) { let reqPartner = new PartnerManager(req.body, configPartner); let apiRequest = reqPartner.requestApi() if (apiRequest instanceof Error) { //handle error res.send(JSON.parse(apiRequest.message)) } else { res.send(apiRequest) } } else { res.send('unknown partner') } }) app.post('/ktc/point/transferPoint', (req, res) => { console.log('/ktc/point/transferPoint', req.body) console.log('/ktc/point/transferPoint', req.headers) let response = { aaa: "test", pushRefId1: 'WsxK21', resultData: [ { pointId1: 'ser' }, { pointId1: 'ser1' } ] } res.set('xx', 'test') // res.status(200).json(response) }) app.post('/mockOneSiamMoblieServiceSoap', (req, res) => { console.log(req.body) console.log(req.headers) res.status(200).send('123$value$value$value') }) app.get('/get', (req, res) => { console.log('get', req.body) console.log('get', req.headers) let response = { pushRefId: '', resultData: [ { pointId1: 'ser' }, { pointId1: 'ser1' } ] } // res.status(200).json(response) }); app.get('/test', async (req, res) => { console.log('test', req.body) console.log('test', req.headers) try { let response = await doRequestFormData('http://test.us-payment.picovr.com/AISPayNotify',{ accept: 'application/json'}, { app_id: '24e09f8038dbf1204c09090d56c872c0', body: 'PICO-COINS12000', buyer_pay_fee: 'Paid by user', device_id: '90c73518a762a2d1a339d7f', fee_type: 'THB', mch_id: 'company_id', nonce_str: 'SpXrgaKf4fagyF9a', notify_type: 'PAY', open_id: 'ZLsdZaanhHDAUkDDgRX6QfpxAj0CSx6x7BLgUt4LlpM=', out_trade_no: '202004081609523', pay_time: 1587527937951, pay_type: 'AIS', receipt_fee: '0.00', subject: 'Purchased 12000 coins.', terminal_type: 'IOS', timestamp: 1587527937951, total_fee: '0.00', trade_no: '50609152601900018023', trade_type: 'Download', signature: '83387eaf92018538d5f8fd7f3a6ecd0a' }) res.send(response) } catch (e) { //if doRequestFormData has error //reject, timeout, other error console.log('doRequestFormData', e) res.send('error') } }); function doRequestFormData(url, headers, data) { console.log(url, headers, data) return new Promise(function (resolve, reject) { request.post({ url: url, headers: headers, timeout: 2000, formData: data }, function (error, res, body) { if (!error && res.statusCode == 200) { resolve(body); } else { reject(error); } }); }); } // app.post('/api/v1/mpay/billingonbehalf/reserveAndChargeVolume.json', (req, res) => { // console.log(req.body) // console.log(req.headers) // let response = { // "reserveAndChargeVolumeResponse": { // "result": "SUCCESS", // "resultDescription": "60713000154960518477", // "endUserIdentifier": "66873381009", // "networkType": "prepaid" // } // } // res.status(200).json(response) // }); app.post('/api/v1/mpay/billingonbehalf/reserveAndChargeVolume.json', function (req, res) { // res.send({ // // reserveAndChargeVolumeResponse : { // result: "SUCCESS", // resultDescription: "60713000154960518477", // endUserIdentifier: "66873381009", // networkType: "prepaid" // // } // }) }) // app.post('/api/v1/mpay/billingonbehalf/partialRefundVolume.json', (req, res) => { // console.log(req.body) // console.log(req.headers) // let response = { // "refundVolumeV2Response": { // "result": "SUCCESS", // "resultDescription": "60713000154960518477", // "endUserIdentifier": "66873381009", // "networkType": "prepaid" // } // } // res.status(200).json(response) // }); app.post('/api/v1/mpay/billingonbehalf/queryChargeTransaction.json', (req, res) => { console.log(req.body) console.log(req.headers) let response = { "result": "SUCCESS", "resultDescription": "201805231904005310944" } res.status(200).json(response) }); app.post('/api/v1/mpay/billingonbehalf/queryRefundTransaction.json', (req, res) => { console.log(req.body) console.log(req.headers) let response = { "result": "SUCCESS", "resultDescription": "201805231904005310944" } res.status(200).json(response) }); // app.use(multiparty({ uploadDir: "./img"})); app.post('/api/shop-cdns/upload', (req, res) => { var azure = require('azure-storage') var multiparty = require('multiparty') process.env.AZURE_STORAGE_ACCOUNT = 'shareallspw' process.env.AZURE_STORAGE_ACCESS_KEY = 'TIWwkqyvlyTySRzSelOJij2jaZbKIZ/fLUST0q9TPZGNI1dQVVn1/bU4/FnEJnUpvW1fqtWYI2HmGJeD/Oo4eA==' var blobService = azure.createBlobService(); var form = new multiparty.Form(); form.on('part', function (part) { if (!part.filename) return; var size = part.byteCount; var path = 'point' var name = moment().valueOf() + '.' + part.filename.split('.')[1]; var container = 'spw-cdn'; blobService.createBlockBlobFromStream(container, path + '/' + name, part, size, function (error, result, response) { if (error) { console.log(error) // error handling res.status(500).send('Error uploading file'); } console.log('result', result) console.log('response', response) // res.send('File uploaded successfully'); let responseMessage = { name: part.filename, type: part.headers['content-type'], size: part.byteCount, container: '/' + path, imageUrl: 'https://shareallspw.azureedge.net/' + path + '/' + name, thumbnails: 'test1', thumbnails43: 'test2', } console.log(responseMessage) res.send(responseMessage) }); }); form.parse(req); }); var multipart = require('connect-multiparty'); var multipartMiddleware = multipart({ uploadDir: './img' }); app.post('/api/shop-cdns/upload2', multipartMiddleware, async (req, res) => { console.log(req.body, req.files); var size = req.files.file.size; var name = moment().valueOf() + '.' + req.files.file.name.split('.')[1]; var path = 'point' var container = 'spw-cdn'; // console.log(req.files.file.path) var blobService = azure.createBlobService(); blobService.createBlockBlobFromLocalFile(container, path + '/' + name, req.files.file.path, (error, result, response) => { console.log(result) console.log(response) console.log(error) console.log({ name: name, type: req.files.file.type, size: size, container: '/' + path, imageUrl: 'https://shareallspw.azureedge.net/' + path + '/' + name, thumbnails: 'test1', thumbnails43: 'test2', }) res.send({ name: name, type: req.files.file.type, size: size, container: '/' + path, imageUrl: 'https://shareallspw.azureedge.net/' + path + '/' + name, thumbnails: 'test1', thumbnails43: 'test2', }) }) }); app.get('/scf/v2/partnerSpecificPrivateId/:privateId.json', require('./scf').decryptPrivateId); app.post('/api/v1/gsso/sendOneTimePW.json', require('./gsso').sendOneTimePassword); app.post('/api/v1/gsso/confirmOneTimePassword.json', require('./gsso').confirmOneTimePassword); app.get('/ssb/profile/network/subscriber/:userId/type/:userType', require('./ssb').getProfileType); app.post('/ssb/profile/historyPackage', require('./ssb').queryHistoryPackage); app.post('/ssb/profile/currentPackage', require('./ssb').queryCurrentPackage); app.post('/ssb/package/apply', require('./ssb').applyPack); app.post('/ssb/package/subscriber', require('./ssb').deletePackage); // app.post('/verifyReceipt', require('./apple').verifyReceipt); // app.post('/api/v1/package/packagepayment', require('./nafa').packagePayment); // app.post('/api/v1/package/cancelPackage', require('./nafa').cancelPackage); // app.get('/api/v1/customer', require('./d01').getCustomer); app.post('/api/v1/customer', require('./d01').postCustomer); app.put('/api/v1/customer', require('./d01').putCustomer); app.delete('/api/v1/customer', require('./d01').deleteCustomer); app.get('/api/v1/memberlink', require('./d01').getMemberLink); app.post('/api/v1/memberlink', require('./d01').postMemberLink); app.put('/api/v1/memberlink', require('./d01').putMemberLink); app.delete('/api/v1/memberlink', require('./d01').deleteMemberLink); app.get('/api/v1/address', require('./d01').getAddress); app.post('/api/v1/address', require('./d01').postAddress); app.put('/api/v1/address', require('./d01').putAddress); app.delete('/api/v1/address', require('./d01').deleteAddress); app.get('/api/v1/mastermember', require('./d01').getMasterMember); app.post('/api/v1/mastermember', require('./d01').postMasterMember); app.put('/api/v1/mastermember', require('./d01').putMasterMember); app.delete('/api/v1/mastermember', require('./d01').deleteMasterMember); app.get('/api/v1/gender', require('./d01').getGender); app.post('/api/v1/gender', require('./d01').postGender); app.put('/api/v1/gender', require('./d01').putGender); app.delete('/api/v1/gender', require('./d01').deleteGender); app.get('/api/v1/address_type', require('./d01').getAddressType); app.post('/api/v1/address_type', require('./d01').postAddressType); app.put('/api/v1/address_type', require('./d01').putAddressType); app.delete('/api/v1/address_type', require('./d01').deleteAddressType); app.post('/auth/v3.1/oauth/token', require('./admd').oauthToken); app.post('/auth/v3.1/logout', require('./admd').logout); app.post('/validate/token', require('./admd').validateToken); app.post('/point/v1/deleteCustomer', require('./micro_point').deleteCustomer); app.post('/privilege/v1/history/delete', require('./privilege').deleteCustomer); app.post('/v1/MVP/enq/getMobileOfferInventory/', require('./true').getMobileOfferInventory); app.get('/api/random/leader', function (req, res) { const months = ["เกมส์", "โน๊ต setup", "โน๊ต วัศรุต", "แบงค์", "มอส", "ปิ๊ค", "เต้นพอไม่ต้องตื่น", "เปา", "นัท", "kik", "new", "ann","na", "boky", "eve", "miki", "pla", "sugar"]; // const months = [ "ann"]; let object={} for(var i=0; i<100; i++) { const random = Math.floor(Math.random() * months.length); // console.log(random, months[random]); if(object[months[random]]) { object[months[random]] = object[months[random]] + 1; } else { object[months[random]] = 1 } } console.log(object); res.send(object); }) app.get('/linenoti', require('./line').lineNoti) app.listen(port, () => console.log('app listening on port ' + port + '!'))