Tidy up emoncms json parse on success

This commit is contained in:
Nick O'Leary 2015-11-03 11:03:02 +00:00
parent f5950211af
commit d82ce7c58a
1 changed files with 15 additions and 16 deletions

View File

@ -1,5 +1,5 @@
/** /**
* Copyright 2013 Henrik Olsson henols@gmail.com * Copyright 2013, 2015 Henrik Olsson henols@gmail.com
* *
* Licensed under the Apache License, Version 2.0 (the "License"); you may not * Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of * use this file except in compliance with the License. You may obtain a copy of
@ -59,25 +59,22 @@ module.exports = function(RED) {
http.get(this.url, function(res) { http.get(this.url, function(res) {
msg.rc = res.statusCode; msg.rc = res.statusCode;
msg.payload = ""; msg.payload = "";
if ((msg.rc != 200) && (msg.rc != 404)) {
node.send(msg);
}
res.setEncoding('utf8'); res.setEncoding('utf8');
res.on('data', function(chunk) { res.on('data', function(chunk) {
msg.payload += chunk; msg.payload += chunk;
}); });
res.on('end', function() { res.on('end', function() {
node.send(msg); if (msg.rc === 200) {
node.send(msg);
}
}); });
}).on('error', function(e) { }).on('error', function(e) {
// node.error(e); node.error(e,msg);
msg.rc = 503;
msg.payload = e;
}); });
}); });
} }
RED.nodes.registerType("emoncms",Emoncms); RED.nodes.registerType("emoncms",Emoncms);
function Emoncmsin(n) { function Emoncmsin(n) {
RED.nodes.createNode(this,n); RED.nodes.createNode(this,n);
this.emonServer = n.emonServer; this.emonServer = n.emonServer;
@ -101,20 +98,22 @@ module.exports = function(RED) {
http.get(this.url, function(res) { http.get(this.url, function(res) {
msg.rc = res.statusCode; msg.rc = res.statusCode;
msg.payload = ""; msg.payload = "";
if ((msg.rc != 200) && (msg.rc != 404)) {
node.send(JSON.parse(msg));
}
res.setEncoding('utf8'); res.setEncoding('utf8');
res.on('data', function(chunk) { res.on('data', function(chunk) {
msg.payload += chunk; msg.payload += chunk;
}); });
res.on('end', function() { res.on('end', function() {
node.send(msg); if (msg.rc === 200) {
try {
msg.payload = JSON.parse(msg.payload);
} catch(err) {
// Failed to parse, pass it on
}
node.send(msg);
}
}); });
}).on('error', function(e) { }).on('error', function(e) {
// node.error(e); node.error(e,msg);
msg.rc = 503;
msg.payload = e;
}); });
}); });
} }