Here’s a test copying between various drivers and comparing the results.
var fusionKey = "1pvt-tlc5z6Lek8K7vAIpXNUsOjX3qTbIsdXx9Fo";
var sheetId = "12pTwh5Wzg0W4ZnGBiUI3yZY8QFoNI8NNx_oCPynjGYY";
var sheetName = "play";
function apiRoundTest() {
// get some data from a fusion table
//fusion
var fusionHandler = new cDataHandler.DataHandler(fusionKey,cDataHandler.dhConstants.DB.FUSION,undefined, 'myfusion');
var source = fusionHandler.query();
if(source.handleCode <0) throw (JSON.stringify(source));
// delete all for this collection in orchestrate
var orchestrateHandler = new cDataHandler.DataHandler
('carriers',cDataHandler.dhConstants.DB.ORCHESTRATE,undefined,'myorchestrate',
JSON.parse(UserProperties.getProperty("orchestrateKeys")));
var result = orchestrateHandler.remove();
if(result.handleCode <0) throw (JSON.stringify(result));
// copy data over
var result = orchestrateHandler.save(source.data);
if(result.handleCode <0) throw (JSON.stringify(result));
// query it
var result = orchestrateHandler.query({"carrier":"UA"});
if(result.handleCode <0) throw (JSON.stringify(result));
Logger.log(JSON.stringify(result.data));
// count it
var result = orchestrateHandler.count();
if(result.handleCode <0) throw (JSON.stringify(result));
Logger.log(JSON.stringify(result.data[0].count));
// get all the data
var orchData = orchestrateHandler.query();
if(orchData.handleCode <0) throw (JSON.stringify(orchData));
// copy it to a spreadsheet after deleting anything already
var sheetHandler = new cDataHandler.DataHandler('carriers',cDataHandler.dhConstants.DB.SHEET,undefined, sheetId);
var result = sheetHandler.remove();
if(result.handleCode <0) throw (JSON.stringify(result));
var result = sheetHandler.save(orchData.data);
if(result.handleCode <0) throw (JSON.stringify(result));
var sheetData = sheetHandler.query();
if(sheetData.handleCode <0) throw (JSON.stringify(sheetData));
// and to scriptdb
var dbHandler = new cDataHandler.DataHandler('carriers',cDataHandler.dhConstants.DB.SCRIPTDB,undefined,'mydb',ScriptDb.getMyDb());
var result = dbHandler.remove();
if(result.handleCode <0) throw (JSON.stringify(result));
var result = dbHandler.save(sheetData.data);
if(result.handleCode <0) throw (JSON.stringify(result));
var dbData = dbHandler.query();
if(dbData.handleCode <0) throw (JSON.stringify(dbData));
// and to parse.com
var parseHandler = new cDataHandler.DataHandler
('carriers',cDataHandler.dhConstants.DB.PARSE,undefined,'myparse',JSON.parse(UserProperties.getProperty("parseKeys")));
var result = parseHandler.remove();
if(result.handleCode <0) throw (JSON.stringify(result));
var result = parseHandler.save(dbData.data);
if(result.handleCode <0) throw (JSON.stringify(result));
// get from parse and compare back to the original data
var parseData = parseHandler.query();
if(parseData.handleCode <0) throw (JSON.stringify(parseData));
// compare stuff from the beginning to the end
var p = parseData.data.sort ( function (a,b) {
return a.carrier < b.carrier ? -1 : (a.carrier === b.carrier ? 0 : 1);
});
var s = parseData.data.sort ( function (a,b) {
return a.carrier < b.carrier ? -1 : (a.carrier === b.carrier ? 0 : 1);
});
Logger.log ('end same as start ?' + ( s.every(function(d,i) {
return JSON.stringify(d) === JSON.stringify(p[i]);
})));
Logger.log('all counts are the same ? ' + (parseHandler.count().data[0].count === dbHandler.count().data[0].count ===
sheetHandler.count().data[0].count === fusionHandler.count().data[0].count === orchestrateHandler.count().data[0].count));
}
For help and more information join our forum, follow the blog or follow me on Twitter .