diff --git a/src/matrix-synapse-create-edit-user.js b/src/matrix-synapse-create-edit-user.js index 67dca0d..ed1925d 100644 --- a/src/matrix-synapse-create-edit-user.js +++ b/src/matrix-synapse-create-edit-user.js @@ -8,9 +8,10 @@ module.exports = function(RED) { this.server = RED.nodes.getNode(n.server); if(!this.server) { - node.error('Server must be configured on the node.'); + node.error('Server must be configured on the node.', {}); return; } + node.server.register(node); this.encodeUri = function(pathTemplate, variables) { for (const key in variables) { @@ -41,12 +42,12 @@ module.exports = function(RED) { } if(!node.server.isConnected()) { - node.error("Matrix server connection is currently closed"); + node.error("Matrix server connection is currently closed", {}); node.send([null, msg]); } if(!msg.userId) { - node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)"); + node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)", {}); return; } @@ -69,6 +70,10 @@ module.exports = function(RED) { node.send([null, msg]); }); }); + + node.on("close", function() { + node.server.deregister(node); + }); } RED.nodes.registerType("matrix-synapse-create-edit-user", MatrixSynapseCreateEditUser); } \ No newline at end of file diff --git a/src/matrix-synapse-deactivate-user.js b/src/matrix-synapse-deactivate-user.js index 939692b..a881057 100644 --- a/src/matrix-synapse-deactivate-user.js +++ b/src/matrix-synapse-deactivate-user.js @@ -8,9 +8,10 @@ module.exports = function(RED) { this.server = RED.nodes.getNode(n.server); if(!this.server) { - node.error('Server must be configured on the node.'); + node.error('Server must be configured on the node.', {}); return; } + node.server.register(node); this.encodeUri = function(pathTemplate, variables) { for (const key in variables) { @@ -41,12 +42,12 @@ module.exports = function(RED) { } if(!node.server.isConnected()) { - node.error("Matrix server connection is currently closed"); + node.error("Matrix server connection is currently closed", {}); node.send([null, msg]); } if(!msg.userId) { - node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)"); + node.error("msg.userId must be set to edit/create a user (ex: @user:server.com)", {}); return; } @@ -70,6 +71,10 @@ module.exports = function(RED) { node.send([null, msg]); }); }); + + node.on("close", function() { + node.server.deregister(node); + }); } RED.nodes.registerType("matrix-synapse-deactivate-user", MatrixSynapseDeactivateUser); } \ No newline at end of file diff --git a/src/matrix-synapse-join-room.js b/src/matrix-synapse-join-room.js index d08d794..0cb0ce3 100644 --- a/src/matrix-synapse-join-room.js +++ b/src/matrix-synapse-join-room.js @@ -9,10 +9,9 @@ module.exports = function(RED) { this.roomId = n.roomId; if(!this.server) { - node.error('Server must be configured on the node.'); + node.error('Server must be configured on the node.', {}); return; } - this.encodeUri = function(pathTemplate, variables) { for (const key in variables) { if (!variables.hasOwnProperty(key)) { @@ -42,18 +41,18 @@ module.exports = function(RED) { } if(!node.server.isConnected()) { - node.error("Matrix server connection is currently closed"); + node.error("Matrix server connection is currently closed", {}); node.send([null, msg]); } msg.topic = node.roomId || msg.topic; if(!msg.topic) { - node.error("room must be defined in either msg.topic or in node config"); + node.error("room must be defined in either msg.topic or in node config", {}); return; } if(!msg.userId) { - node.error("msg.userId is required to set user into a room"); + node.error("msg.userId is required to set user into a room", {}); return; } @@ -77,6 +76,10 @@ module.exports = function(RED) { node.send([null, msg]); }); }); + + node.on("close", function() { + node.server.deregister(node); + }); } RED.nodes.registerType("matrix-synapse-join-room", MatrixJoinRoom); } \ No newline at end of file diff --git a/src/matrix-synapse-register.js b/src/matrix-synapse-register.js index 25cc3db..21223cf 100644 --- a/src/matrix-synapse-register.js +++ b/src/matrix-synapse-register.js @@ -12,25 +12,27 @@ module.exports = function(RED) { this.sharedSecret = this.credentials.sharedSecret; if(!this.server) { - node.error('Server URL must be configured on the node.'); + node.error('Server URL must be configured on the node.', {}); return; } if(!this.sharedSecret) { - node.error('Shared registration secret must be configured on the node.'); + node.error('Shared registration secret must be configured on the node.', {}); return; } + node.server.register(node); + node.on("input", async function (msg) { const { got } = await import('got'); if(!msg.payload.username) { - node.error("msg.payload.username is required"); + node.error("msg.payload.username is required", {}); return; } if(!msg.payload.password) { - node.error("msg.payload.password is required"); + node.error("msg.payload.password is required", {}); return; } @@ -50,7 +52,7 @@ module.exports = function(RED) { var nonce = response.body.nonce; if(!nonce) { - node.error('Could not get nonce from /_synapse/admin/v1/register'); + node.error('Could not get nonce from /_synapse/admin/v1/register', {}); return; } @@ -96,6 +98,10 @@ module.exports = function(RED) { node.send(msg); })(); }); + + node.on("close", function() { + node.server.deregister(node); + }); } RED.nodes.registerType("matrix-synapse-register", MatrixSynapseRegister, { credentials: { diff --git a/src/matrix-synapse-users.js b/src/matrix-synapse-users.js index 9beb1b1..eb1975e 100644 --- a/src/matrix-synapse-users.js +++ b/src/matrix-synapse-users.js @@ -12,6 +12,8 @@ module.exports = function(RED) { return; } + node.server.register(node); + node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.server.on("disconnected", function(){ @@ -29,7 +31,7 @@ module.exports = function(RED) { } if(!node.server.isConnected()) { - node.error("Matrix server connection is currently closed"); + node.error("Matrix server connection is currently closed", {}); node.send([null, msg]); } @@ -62,6 +64,10 @@ module.exports = function(RED) { node.send([null, msg]); }); }); + + node.on("close", function() { + node.server.deregister(node); + }); } RED.nodes.registerType("matrix-synapse-users", MatrixSynapseUsers); } \ No newline at end of file diff --git a/src/matrix-whois-user.js b/src/matrix-whois-user.js index 3a22feb..226b623 100644 --- a/src/matrix-whois-user.js +++ b/src/matrix-whois-user.js @@ -8,10 +8,12 @@ module.exports = function(RED) { this.server = RED.nodes.getNode(n.server); if(!this.server) { - node.error('Server must be configured on the node.'); + node.error('Server must be configured on the node.', {}); return; } + node.server.register(node); + this.encodeUri = function(pathTemplate, variables) { for (const key in variables) { if (!variables.hasOwnProperty(key)) { @@ -41,12 +43,12 @@ module.exports = function(RED) { } if(!node.server.isConnected()) { - node.error("Matrix server connection is currently closed"); + node.error("Matrix server connection is currently closed", {}); node.send([null, msg]); } if(!msg.userId) { - node.error("msg.userId must be set to get user whois data"); + node.error("msg.userId must be set to get user whois data", {}); return; } @@ -70,6 +72,10 @@ module.exports = function(RED) { node.send([null, msg]); }); }); + + node.on("close", function() { + node.server.deregister(node); + }); } RED.nodes.registerType("matrix-whois-user", MatrixWhoIsUser); } \ No newline at end of file