Skip to content

Commit fbfc5c8

Browse files
committed
Add error codes to api responses
1 parent 31b018c commit fbfc5c8

5 files changed

Lines changed: 19 additions & 19 deletions

File tree

red/api/flows.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ module.exports = {
3434
}).otherwise(function(err) {
3535
log.warn("Error saving flows : "+err.message);
3636
log.warn(err.stack);
37-
res.json(500,{message:err.message});
37+
res.json(500,{error:"unexpected_error", message:err.message});
3838
});
3939
}
4040
}

red/api/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ var settings = require("../settings");
3232

3333
var errorHandler = function(err,req,res,next) {
3434
console.log(err.stack);
35-
res.json(400,{message:err.toString()});
35+
res.json(400,{error:"unexpected_error", message:err.toString()});
3636
};
3737

3838
function init(adminApp,storage) {

red/api/library.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function createLibrary(type) {
5757
res.send(403);
5858
return;
5959
}
60-
res.json(500,{message:err.toString()});
60+
res.json(500,{error:"unexpected_error", message:err.toString()});
6161
});
6262
});
6363
}

red/api/nodes.js

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@ module.exports = {
3737

3838
post: function(req,res) {
3939
if (!settings.available()) {
40-
res.json(400,{message:"Settings unavailable"});
40+
res.json(400,{error:"settings_unavailable", message:"Settings unavailable"});
4141
return;
4242
}
4343
var node = req.body;
4444
var promise;
4545
if (node.module) {
4646
var module = redNodes.getModuleInfo(node.module);
4747
if (module) {
48-
res.json(400,{message:"Module already loaded"});
48+
res.json(400,{error:"module_already_loaded", message:"Module already loaded"});
4949
return;
5050
}
5151
promise = server.installModule(node.module);
5252
} else {
53-
res.json(400,{message:"Invalid request"});
53+
res.json(400,{error:"invalid_request", message:"Invalid request"});
5454
return;
5555
}
5656
promise.then(function(info) {
@@ -59,14 +59,14 @@ module.exports = {
5959
if (err.code === 404) {
6060
res.send(404);
6161
} else {
62-
res.json(400,{message:err.toString()});
62+
res.json(400,{error:err.code||"unexpected_error", message:err.toString()});
6363
}
6464
});
6565
},
6666

6767
delete: function(req,res) {
6868
if (!settings.available()) {
69-
res.json(400,{message:"Settings unavailable"});
69+
res.json(400,{error:"settings_unavailable", message:"Settings unavailable"});
7070
return;
7171
}
7272
var mod = req.params.mod;
@@ -83,12 +83,10 @@ module.exports = {
8383
promise.then(function() {
8484
res.send(204);
8585
}).otherwise(function(err) {
86-
console.log(err.stack);
87-
res.json(400,{message:err.toString()});
86+
res.json(400,{error:err.code||"unexpected_error", message:err.toString()});
8887
});
8988
} catch(err) {
90-
console.log(err.stack);
91-
res.json(400,{message:err.toString()});
89+
res.json(400,{error:err.code||"unexpected_error", message:err.toString()});
9290
}
9391
},
9492

@@ -122,12 +120,12 @@ module.exports = {
122120

123121
putSet: function(req,res) {
124122
if (!settings.available()) {
125-
res.json(400,{message:"Settings unavailable"});
123+
res.json(400,{error:"settings_unavailable", message:"Settings unavailable"});
126124
return;
127125
}
128126
var body = req.body;
129127
if (!body.hasOwnProperty("enabled")) {
130-
res.json(400,{message:"Invalid request"});
128+
res.json(400,{error:"invalid_request", message:"Invalid request"});
131129
return;
132130
}
133131
try {
@@ -141,18 +139,18 @@ module.exports = {
141139
res.json(putNode(node, body.enabled));
142140
}
143141
} catch(err) {
144-
res.json(400,{message:err.toString()});
142+
res.json(400,{error:err.code||"unexpected_error", message:err.toString()});
145143
}
146144
},
147145

148146
putModule: function(req,res) {
149147
if (!settings.available()) {
150-
res.json(400,{message:"Settings unavailable"});
148+
res.json(400,{error:"settings_unavailable", message:"Settings unavailable"});
151149
return;
152150
}
153151
var body = req.body;
154152
if (!body.hasOwnProperty("enabled")) {
155-
res.json(400,{message:"Invalid request"});
153+
res.json(400,{error:"invalid_request", message:"Invalid request"});
156154
return;
157155
}
158156
try {
@@ -186,7 +184,7 @@ module.exports = {
186184
}
187185
res.json(redNodes.getModuleInfo(mod));
188186
} catch(err) {
189-
res.json(400,{message:err.toString()});
187+
res.json(400,{error:err.code||"unexpected_error", message:err.toString()});
190188
}
191189
}
192190
};

red/nodes/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ function checkTypeInUse(id) {
7474
});
7575
if (nodesInUse.length > 0) {
7676
var msg = nodesInUse.join(", ");
77-
throw new Error("Type in use: "+msg);
77+
var err = new Error("Type in use: "+msg);
78+
err.code = "type_in_use";
79+
throw err;
7880
}
7981
}
8082
}

0 commit comments

Comments
 (0)