(de)Register consumer nodes at config node

In order for error messages to be catchable
This commit is contained in:
bvmensvoort
2023-06-11 10:45:13 +02:00
committed by Skylar Sadlier
parent 8ca11f36d8
commit 124a0cba34
15 changed files with 79 additions and 0 deletions
+5
View File
@@ -11,6 +11,7 @@ module.exports = function(RED) {
node.error('Server must be configured on the node.', {}); node.error('Server must be configured on the node.', {});
return; return;
} }
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) { this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) { for (const key in variables) {
@@ -64,6 +65,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-create-room", MatrixCreateRoom); RED.nodes.registerType("matrix-create-room", MatrixCreateRoom);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -70,6 +71,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-delete-event",MatrixDeleteEvent); RED.nodes.registerType("matrix-delete-event",MatrixDeleteEvent);
} }
+5
View File
@@ -12,6 +12,7 @@ module.exports = function(RED) {
node.error('Server must be configured on the node.', {}); node.error('Server must be configured on the node.', {});
return; return;
} }
node.server.register(node);
this.encodeUri = function(pathTemplate, variables) { this.encodeUri = function(pathTemplate, variables) {
for (const key in variables) { for (const key in variables) {
@@ -64,6 +65,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-invite-room", MatrixInviteRoom); RED.nodes.registerType("matrix-invite-room", MatrixInviteRoom);
} }
+5
View File
@@ -11,6 +11,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -51,6 +52,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-join-room", MatrixJoinRoom); RED.nodes.registerType("matrix-join-room", MatrixJoinRoom);
} }
+5
View File
@@ -14,6 +14,7 @@ module.exports = function(RED) {
node.error("No configuration node", {}); node.error("No configuration node", {});
return; return;
} }
node.server.register(node);
node.server.on("disconnected", function(){ node.server.on("disconnected", function(){
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -49,6 +50,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
} }
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-leave-room", MatrixLeaveRoom); RED.nodes.registerType("matrix-leave-room", MatrixLeaveRoom);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -75,6 +76,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-react", MatrixReact); RED.nodes.registerType("matrix-react", MatrixReact);
} }
+5
View File
@@ -24,6 +24,7 @@ module.exports = function(RED) {
node.error("No configuration node", {}); node.error("No configuration node", {});
return; return;
} }
node.server.register(node);
node.server.on("disconnected", function(){ node.server.on("disconnected", function(){
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -149,6 +150,10 @@ module.exports = function(RED) {
node.send(msg); node.send(msg);
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-receive", MatrixReceiveMessage); RED.nodes.registerType("matrix-receive", MatrixReceiveMessage);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -58,6 +59,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-room-ban", MatrixBan); RED.nodes.registerType("matrix-room-ban", MatrixBan);
} }
+5
View File
@@ -12,6 +12,7 @@ module.exports = function(RED) {
node.error('Server must be configured on the node.', {}); node.error('Server must be configured on the node.', {});
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -26,6 +27,10 @@ module.exports = function(RED) {
node.server.on("Room.invite", async function(msg) { node.server.on("Room.invite", async function(msg) {
node.send(msg); node.send(msg);
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-room-invite", MatrixRoomInvite); RED.nodes.registerType("matrix-room-invite", MatrixRoomInvite);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -58,6 +59,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-room-kick", MatrixKick); RED.nodes.registerType("matrix-room-kick", MatrixKick);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -65,6 +66,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-room-users", MatrixRoomUsers); RED.nodes.registerType("matrix-room-users", MatrixRoomUsers);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -94,6 +95,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-send-file", MatrixSendFile); RED.nodes.registerType("matrix-send-file", MatrixSendFile);
} }
+5
View File
@@ -13,6 +13,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -98,6 +99,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-send-image", MatrixSendImage); RED.nodes.registerType("matrix-send-image", MatrixSendImage);
} }
+5
View File
@@ -54,6 +54,7 @@ module.exports = function(RED) {
node.warn("No configuration node"); node.warn("No configuration node");
return; return;
} }
node.server.register(node);
node.status({ fill: "red", shape: "ring", text: "disconnected" }); node.status({ fill: "red", shape: "ring", text: "disconnected" });
@@ -152,6 +153,10 @@ module.exports = function(RED) {
node.send([null, msg]); node.send([null, msg]);
}); });
}); });
node.on("close", function() {
node.server.deregister(node);
});
} }
RED.nodes.registerType("matrix-send-message", MatrixSendImage); RED.nodes.registerType("matrix-send-message", MatrixSendImage);
} }
+9
View File
@@ -44,6 +44,7 @@ module.exports = function(RED) {
this.credentials = {}; this.credentials = {};
} }
this.users = {};
this.connected = null; this.connected = null;
this.name = n.name; this.name = n.name;
this.userId = this.credentials.userId; this.userId = this.credentials.userId;
@@ -423,6 +424,14 @@ module.exports = function(RED) {
} }
) )
})(); })();
// Keep track of all consumers of this node to be able to catch errors
node.register = function(consumerNode) {
node.users[consumerNode.id] = consumerNode;
};
node.deregister = function(consumerNode) {
delete node.users[consumerNode.id];
};
} }
} }