diff --git a/public/red/ui/deploy.js b/public/red/ui/deploy.js index 66983cadf..d1354cac4 100644 --- a/public/red/ui/deploy.js +++ b/public/red/ui/deploy.js @@ -148,7 +148,7 @@ RED.deploy = (function() { }).fail(function(xhr,textStatus,err) { RED.nodes.dirty(true); if (xhr.responseText) { - RED.notify("Error: "+xhr.responseText,"error"); + RED.notify("Error: "+xhr.responseJSON.message,"error"); } else { RED.notify("Error: no response from server","error"); } diff --git a/public/red/ui/library.js b/public/red/ui/library.js index 9cbafc429..19193cd7f 100644 --- a/public/red/ui/library.js +++ b/public/red/ui/library.js @@ -330,7 +330,7 @@ RED.library = (function() { }).done(function(data,textStatus,xhr) { RED.notify("Saved "+options.type,"success"); }).fail(function(xhr,textStatus,err) { - RED.notify("Saved failed: "+xhr.responseText,"error"); + RED.notify("Saved failed: "+xhr.responseJSON.message,"error"); }); } $( "#node-dialog-library-save-confirm" ).dialog({ diff --git a/red/api/auth/index.js b/red/api/auth/index.js index 9ba45aee3..f89395fa5 100644 --- a/red/api/auth/index.js +++ b/red/api/auth/index.js @@ -99,7 +99,6 @@ module.exports = { authenticateClient: authenticateClient, getToken: getToken, errorHandler: function(err,req,res,next) { - //TODO: standardize json response //TODO: audit log statment //console.log(err.stack); //log.log({level:"audit",type:"auth",msg:err.toString()}); diff --git a/red/api/flows.js b/red/api/flows.js index 1bf858aff..7fbcf9360 100644 --- a/red/api/flows.js +++ b/red/api/flows.js @@ -34,7 +34,7 @@ module.exports = { }).otherwise(function(err) { log.warn("Error saving flows : "+err.message); log.warn(err.stack); - res.send(500,err.message); + res.json(500,{message:err.message}); }); } } diff --git a/red/api/index.js b/red/api/index.js index 271ee3698..909580f58 100644 --- a/red/api/index.js +++ b/red/api/index.js @@ -31,9 +31,8 @@ var needsPermission = auth.needsPermission; var settings = require("../settings"); var errorHandler = function(err,req,res,next) { - //TODO: standardize json response console.log(err.stack); - res.send(400,err.toString()); + res.json(400,{message:err.toString()}); }; function init(adminApp,storage) { diff --git a/red/api/library.js b/red/api/library.js index 523f83dd8..b89f12501 100644 --- a/red/api/library.js +++ b/red/api/library.js @@ -57,7 +57,7 @@ function createLibrary(type) { res.send(403); return; } - res.send(500); + res.json(500,{message:err.toString()}); }); }); } @@ -75,6 +75,7 @@ module.exports = { }, get: function(req,res) { storage.getFlow(req.params[0]).then(function(data) { + // data is already a JSON string res.set('Content-Type', 'application/json'); res.send(data); }).otherwise(function(err) { diff --git a/red/api/nodes.js b/red/api/nodes.js index 4d9bd8063..4a1e59f9f 100644 --- a/red/api/nodes.js +++ b/red/api/nodes.js @@ -37,7 +37,7 @@ module.exports = { post: function(req,res) { if (!settings.available()) { - res.send(400,new Error("Settings unavailable").toString()); + res.json(400,{message:"Settings unavailable"}); return; } var node = req.body; @@ -45,12 +45,12 @@ module.exports = { if (node.module) { var module = redNodes.getNodeModuleInfo(node.module); if (module) { - res.send(400,"Module already loaded"); + res.json(400,{message:"Module already loaded"}); return; } promise = server.installModule(node.module); } else { - res.send(400,"Invalid request"); + res.json(400,{message:"Invalid request"}); return; } promise.then(function(info) { @@ -59,14 +59,14 @@ module.exports = { if (err.code === 404) { res.send(404); } else { - res.send(400,err.toString()); + res.json(400,{message:err.toString()}); } }); }, delete: function(req,res) { if (!settings.available()) { - res.send(400,new Error("Settings unavailable").toString()); + res.json(400,{message:"Settings unavailable"}); return; } var mod = req.params.mod; @@ -83,10 +83,10 @@ module.exports = { promise.then(function() { res.send(204); }).otherwise(function(err) { - res.send(400,err.toString()); + res.json(400,{message:err.toString()}); }); } catch(err) { - res.send(400,err.toString()); + res.json(400,{message:err.toString()}); } }, @@ -120,12 +120,12 @@ module.exports = { putSet: function(req,res) { if (!settings.available()) { - res.send(400,new Error("Settings unavailable").toString()); + res.json(400,{message:"Settings unavailable"}); return; } var body = req.body; if (!body.hasOwnProperty("enabled")) { - res.send(400,"Invalid request"); + res.json(400,{message:"Invalid request"}); return; } try { @@ -138,18 +138,18 @@ module.exports = { res.json(putNode(node, body.enabled)); } } catch(err) { - res.send(400,err.toString()); + res.json(400,{message:err.toString()}); } }, putModule: function(req,res) { if (!settings.available()) { - res.send(400,new Error("Settings unavailable").toString()); + res.json(400,{message:"Settings unavailable"}); return; } var body = req.body; if (!body.hasOwnProperty("enabled")) { - res.send(400,"Invalid request"); + res.json(400,{message:"Invalid request"}); return; } try { @@ -183,7 +183,7 @@ module.exports = { } res.json(redNodes.getModuleInfo(mod)); } catch(err) { - res.send(400,err.toString()); + res.json(400,{message:err.toString()}); } } }; diff --git a/test/red/api/flows_spec.js b/test/red/api/flows_spec.js index 4045cbd12..2887f3561 100644 --- a/test/red/api/flows_spec.js +++ b/test/red/api/flows_spec.js @@ -82,7 +82,7 @@ describe("flows api", function() { if (err) { throw err; } - res.text.should.eql("expected error"); + res.body.should.have.property("message","expected error"); done(); }); }); diff --git a/test/red/api/nodes_spec.js b/test/red/api/nodes_spec.js index 22a5b8067..adb0269fe 100644 --- a/test/red/api/nodes_spec.js +++ b/test/red/api/nodes_spec.js @@ -292,7 +292,7 @@ describe("nodes api", function() { if (err) { throw err; } - res.text.should.equal("Error: test error"); + res.body.should.have.property("message","Error: test error"); done(); }); }); @@ -422,7 +422,7 @@ describe("nodes api", function() { if (err) { throw err; } - res.text.should.equal("Error: test error"); + res.body.should.have.property("message","Error: test error"); done(); }); }); @@ -461,8 +461,7 @@ describe("nodes api", function() { if (err) { throw err; } - res.text.should.equal("Invalid request"); - + res.body.should.have.property("message","Invalid request"); done(); }); }); @@ -481,7 +480,7 @@ describe("nodes api", function() { if (err) { throw err; } - res.text.should.equal("Invalid request"); + res.body.should.have.property("message","Invalid request"); done(); });