bring in some padDiff stuff that doesnt suck

This commit is contained in:
John McLear 2013-01-22 22:33:51 +00:00
parent c6882aa65a
commit 5d416579ee
3 changed files with 191 additions and 0 deletions

View file

@ -568,6 +568,87 @@ exports.checkToken = function(callback)
}
/**
createDiff(padID, startRev, endRev) returns an object of diffs from 2 points in a pad
Example returns:
TODO {"code":0,"message":"ok","data":null}
TODO {"code":4,"message":"no or wrong API Key","data":null}
*/
exports.createDiff = function(padID, startRev, endRev, callback){
//check if rev is a number
if(startRev !== undefined && typeof startRev != "number")
{
//try to parse the number
if(!isNaN(parseInt(startRev)))
{
startRev = parseInt(startRev, 10);
}
else
{
callback({stop: "startRev is not a number"});
return;
}
}
//check if rev is a number
if(endRev !== undefined && typeof endRev != "number")
{
//try to parse the number
if(!isNaN(parseInt(endRev)))
{
endRev = parseInt(endRev, 10);
}
else
{
callback({stop: "endRev is not a number"});
return;
}
}
//get the pad
getPadSafe(padID, true, function(err, pad)
{
if(err){
return callback(err);
}
try {
var padDiff = new PadDiff(pad, startRev, endRev);
} catch(e) {
return callback({stop:e.message});
}
var html, authors;
async.series([
function(callback){
padDiff.getHtml(function(err, _html){
if(err){
return callback(err);
}
html = _html;
callback();
});
},
function(callback){
padDiff.getAuthors(function(err, _authors){
if(err){
return callback(err);
}
authors = _authors;
callback();
});
}
], function(err){
callback(err, {html: html, authors: authors})
});
});
}
/******************************/
/** INTERNAL HELPER FUNCTIONS */
/******************************/