Created
August 29, 2016 22:27
-
-
Save jterrero/51f16ef25a356e436e797d21a9e89f2a to your computer and use it in GitHub Desktop.
handshake node fetch into oracle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var request = require('request'); | |
var dbConfig = require('../../config/datbase.js'); | |
var Util = require('../../lib/util.js'); | |
var oracledb = require('oracledb'); | |
var oracleSID= database.ERP; | |
var ASQ = require('asynquence'); | |
/* | |
* GET /handshakeorders | |
*/ | |
/* | |
* set current date url for handshake fetch, basic auth over ssl | |
*/ | |
function GetAllOrderData(limit,offsetStart,cb){ | |
var todayDate = new Date(); | |
var ctime = Util.dateFormat(todayDate, "%Y%m%d", true) + "T00:00:00"; | |
var apiKey = "abaf15f2a804xx7373429096bf118c7ba29fff879", | |
token = "X"; | |
var url = "https://" + apiKey + ":" + token + "@app.handshake.com/api/v2/orders?ctime__gte=" + ctime + "&limit=10&offset=" + offsetStart; | |
var qryarr = []; | |
GetHandShakeData(url,function(recordset){ | |
if(recordset.length > 0){ | |
qryarr = recordset; | |
offsetStart = offsetStart + limit | |
GetAllOrderData(limit,offsetStart,function(recordset){ | |
for(loop=0;loop<recordset.length;loop++){ | |
qryarr.push(recordset[loop]); | |
} | |
cb(qryarr); | |
}); | |
} | |
else{ | |
cb(qryarr); | |
} | |
}); | |
} | |
/* | |
* json parse to oracle | |
*/ | |
function GetHandShakeData(url,cb) | |
{ | |
var qryarr = []; | |
console.log(url); | |
request({url: url,json: true}, | |
function (error, response, body) { | |
if(body.objects == undefined){ | |
console.log("Error in API:"); | |
console.log(body); | |
cb("Error"); | |
} | |
else | |
{ | |
var qryProducts = ''; | |
var itemCount = 1; | |
var todayDate = new Date(); | |
var dftDelDate = Util.dateFormat(todayDate, "%Y-%m-%d", true); | |
console.log("Total objects "+ body.objects.length); | |
for (var i = 0; i < body.objects.length; i++) | |
{ | |
var chain = body.objects[i]["customer"]["taxID"] + ''; | |
var customer = body.objects[i]["customer"]["id"] + ''; | |
var salesrep = body.objects[i]["ownerName"]+ ''; | |
var delivery_date = body.objects[i]["startShipDate"]+ ''; | |
var po_number = body.objects[i]["objID"]+ ''; | |
var date = body.objects[i]["cdate"] + ''; | |
var notes = body.objects[i]["notes"] + ' '; | |
var order_type = body.objects[i]["shippingMethod"]+ ''; | |
var flag = body.objects[i]["paymentTerms"]+ ''; | |
var items = body.objects[i]["lines"]; | |
for (var itmloop = 0; itmloop < items.length; itmloop++) { | |
item_total = items[itmloop]["unitPrice"]; | |
drv_item_id = items[itmloop]["sku"] + ''; | |
quantity = items[itmloop]["qty"]; | |
itemCount++; | |
if(qryProducts != ''){ | |
qryProducts += " Union all "; | |
} | |
if(delivery_date =="null"){ | |
delivery_date = dftDelDate; | |
} | |
qryProducts += " Select '"+ chain.replace(/'/g,"''") +"','"+ customer.replace(/'/g,"''") +"','"+ salesrep.replace(/'/g,"''") +"'," + | |
" TO_DATE('"+ delivery_date.replace(/'/g,"''") +"','YYYY-MM-dd'),'"+ po_number.replace(/'/g,"''") + "','"+ | |
drv_item_id.replace(/'/g,"''") + "','"+ quantity + "','"+ order_type.replace(/'/g,"''") + "','" + | |
item_total +"','"+ notes.replace(/'/g,"''") + "' from dual"; | |
if(itemCount % 30 == 0){ | |
if(qryProducts !="") | |
qryarr.push(qryProducts); | |
qryProducts =''; | |
itemCount = 1; | |
} | |
} | |
} | |
if(qryProducts != ''){ | |
qryarr.push(qryProducts); | |
} | |
cb(qryarr); | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment