-
Notifications
You must be signed in to change notification settings - Fork 2
/
2-netpie-restchat.js
39 lines (35 loc) · 1 KB
/
2-netpie-restchat.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
module.exports = function(RED) {
function jsonparse(jstr) {
try {
var out = JSON.parse(jstr);
return out;
}
catch(e) {
return "";
}
}
function NetpieRESTChatNode(config) {
var rest = require('restler');
RED.nodes.createNode(this, config);
var node = this;
node.on('input', function(msg) {
var auth = config.auth.split(':');
var alias = config.aliasType=='str'?config.alias:(msg[config.alias]||'');
var payload = config.payloadType=='str'?config.payload:(msg[config.payload]||'');
rest.put('https://api.netpie.io/microgear/'+config.appid+'/'+alias, {
headers: {"Content-Type": "text/plain"},
username: auth[0],
password: auth[1],
data: payload.toString()
}).on('complete', function(data) {
var msg = {
topic : "&status",
payload : jsonparse(data),
raw_payload: data
};
node.send(msg);
});
});
}
RED.nodes.registerType("rest chat",NetpieRESTChatNode);
}