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();
});