dubdiff/server/api/wdiff/wdiff.controller.js

47 lines
1.1 KiB
JavaScript

'use strict';
var _ = require('lodash'),
temp = require('temp'),
fs = require('fs'),
exec = require('child_process').exec,
wdiff = require('../../components/wdiff');
// Automatically track and cleanup files at exit
temp.track();
exports.compare = function(req, res) {
doCompare(req, res, false);
};
exports.compareMarkdown = function(req, res) {
doCompare(req, res, true);
};
// Perform a comparison
// The request should be a json object with two string fields: 'a' and 'b'
function doCompare(req, res, asMarkdown) {
//check for properly formatted request
if (req.headers["content-type"].toLowerCase() != "application/json")
return handleError(res, {error: "Content-type must be 'application/json'"});
if (!req.body.a || !req.body.b)
return handleError(res, {error: "Request data should be of the form {a:'text a', b:'text b'}"});
var a = req.body.a;
var b = req.body.b;
wdiff(a,b,asMarkdown, function(err, result){
if (err)
return handleError(res, err);
res.json(result);
});
}
function handleError(res, err) {
return res.send(500, err);
}