-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi.js
executable file
·33 lines (29 loc) · 877 Bytes
/
api.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
module.exports = function (RED) {
"use strict";
const NODE_PATH = "/ha-discovery/";
RED.httpAdmin.get(NODE_PATH + "getDevices", function (req, res) {
let config = req.query;
let serverNode = RED.nodes.getNode(config.serverNode);
let force = config.forceRefresh
? ["1", "yes", "true", "on"].includes(config.forceRefresh.toLowerCase())
: false;
if (serverNode && serverNode.type == "ha-discovery") {
serverNode.getDevices(function (items) {
if (items) {
res.json(items);
} else {
res.status(404).end();
}
}, force);
} else {
res.json([]);
}
});
RED.httpAdmin.get(NODE_PATH + "*/*", function (req, res) {
var options = {
root: __dirname + "/resources/" + req.params[0] + "/",
dotfiles: "deny",
};
res.sendFile(req.params[1], options);
});
};