@@ -19,11 +19,50 @@ var RED = require(process.env.NODE_RED_HOME+"/red/red");
19
19
function EmoncmsServerNode ( n ) {
20
20
RED . nodes . createNode ( this , n ) ;
21
21
this . server = n . server ;
22
- this . apikey = n . apikey ;
23
22
this . name = n . name ;
23
+ var credentials = RED . nodes . getCredentials ( n . id ) ;
24
+ if ( credentials ) {
25
+ this . apikey = credentials . apikey ;
26
+ }
27
+
24
28
}
25
29
RED . nodes . registerType ( "emoncms-server" , EmoncmsServerNode ) ;
26
30
31
+ var querystring = require ( 'querystring' ) ;
32
+
33
+ RED . app . get ( '/emoncms-server/:id' , function ( req , res ) {
34
+ var credentials = RED . nodes . getCredentials ( req . params . id ) ;
35
+ if ( credentials ) {
36
+ res . send ( JSON . stringify ( { apikey :credentials . apikey } ) ) ;
37
+ } else {
38
+ res . send ( JSON . stringify ( { } ) ) ;
39
+ }
40
+ } ) ;
41
+
42
+ RED . app . delete ( '/emoncms-server/:id' , function ( req , res ) {
43
+ RED . nodes . deleteCredentials ( req . params . id ) ;
44
+ res . send ( 200 ) ;
45
+ } ) ;
46
+
47
+ RED . app . post ( '/emoncms-server/:id' , function ( req , res ) {
48
+
49
+ var body = "" ;
50
+ req . on ( 'data' , function ( chunk ) {
51
+ body += chunk ;
52
+ } ) ;
53
+ req . on ( 'end' , function ( ) {
54
+ var newCreds = querystring . parse ( body ) ;
55
+ var credentials = RED . nodes . getCredentials ( req . params . id ) || { } ;
56
+ if ( newCreds . apikey == null || newCreds . apikey == "" ) {
57
+ delete credentials . apikey ;
58
+ } else {
59
+ credentials . apikey = newCreds . apikey ;
60
+ }
61
+ RED . nodes . addCredentials ( req . params . id , credentials ) ;
62
+ res . send ( 200 ) ;
63
+ } ) ;
64
+ } ) ;
65
+
27
66
function Emoncms ( n ) {
28
67
RED . nodes . createNode ( this , n ) ;
29
68
this . emonServer = n . emonServer ;
@@ -40,9 +79,10 @@ function Emoncms(n) {
40
79
this . on ( "input" , function ( msg ) {
41
80
42
81
var topic = this . topic || msg . topic ;
82
+ var nodegroup = this . nodegroup || msg . nodegroup ;
43
83
this . url = this . baseurl + '/input/post.json?json={' + topic + ':' + msg . payload + '}&apikey=' + this . apikey ;
44
- if ( this . nodegroup != "" ) {
45
- this . url += '&node=' + this . nodegroup ;
84
+ if ( nodegroup != "" ) {
85
+ this . url += '&node=' + nodegroup ;
46
86
}
47
87
node . log ( "[emoncms] " + this . url ) ;
48
88
http . get ( this . url , function ( res ) {
0 commit comments