Update jsDoc in nodeController

This commit is contained in:
Logan Cusano
2023-07-15 18:14:53 -04:00
committed by logan
parent 0a8dc75a93
commit cfeea57744

View File

@@ -7,13 +7,14 @@ const utils = require("../utilities/utils");
const { sendHttpRequest, requestOptions } = require("../utilities/httpRequests.js"); const { sendHttpRequest, requestOptions } = require("../utilities/httpRequests.js");
const { nodeObject } = require("../utilities/recordHelper.js"); const { nodeObject } = require("../utilities/recordHelper.js");
const { joinServerWrapper } = require("../commands/join"); const { joinServerWrapper } = require("../commands/join");
const { leaveServerWrapper } = require("../commands/leave");
const refreshInterval = process.env.NODE_MONITOR_REFRESH_INTERVAL ?? 1200000; const refreshInterval = process.env.NODE_MONITOR_REFRESH_INTERVAL ?? 1200000;
/** /**
* *
* @param {*} req * @param {*} req Default express req from router
* @param {*} res * @param {*} res Defualt express res from router
*/ */
exports.listAllNodes = async (req, res) => { exports.listAllNodes = async (req, res) => {
getAllNodes((allNodes) => { getAllNodes((allNodes) => {
@@ -23,7 +24,11 @@ exports.listAllNodes = async (req, res) => {
}); });
} }
// Add a new node to the storage /**
* Add a new node to the storage
* @param {*} req Default express req from router
* @param {*} res Defualt express res from router
*/
exports.newNode = async (req, res) => { exports.newNode = async (req, res) => {
if (!req.body.name) return res.status(400).json("No name specified for new node"); if (!req.body.name) return res.status(400).json("No name specified for new node");
@@ -53,7 +58,11 @@ exports.newNode = async (req, res) => {
} }
} }
// Get the known info for the node specified /** Get the known info for the node specified
*
* @param {*} req Default express req from router
* @param {*} res Defualt express res from router
*/
exports.getNodeInfo = async (req, res) => { exports.getNodeInfo = async (req, res) => {
if (!req.query.id) return res.status(400).json("No id specified"); if (!req.query.id) return res.status(400).json("No id specified");
getNodeInfoFromId(req.query.id, (nodeInfo) => { getNodeInfoFromId(req.query.id, (nodeInfo) => {
@@ -61,7 +70,11 @@ exports.getNodeInfo = async (req, res) => {
}) })
} }
// Updates the information received from the client based on ID /** Updates the information received from the client based on ID
*
* @param {*} req Default express req from router
* @param {*} res Defualt express res from router
*/
exports.nodeCheckIn = async (req, res) => { exports.nodeCheckIn = async (req, res) => {
if (!req.body.id) return res.status(400).json("No id specified"); if (!req.body.id) return res.status(400).json("No id specified");
getNodeInfoFromId(req.body.id, (nodeInfo) => { getNodeInfoFromId(req.body.id, (nodeInfo) => {
@@ -126,6 +139,8 @@ exports.nodeCheckIn = async (req, res) => {
/** /**
* Request the node to join the specified server/channel and listen to the specified resource * Request the node to join the specified server/channel and listen to the specified resource
* *
* @param {*} req Default express req from router
* @param {*} res Defualt express res from router
* @param req.body.clientId The client ID to join discord with (NOT dev portal ID, right click user -> Copy ID) * @param req.body.clientId The client ID to join discord with (NOT dev portal ID, right click user -> Copy ID)
* @param req.body.channelId The Channel ID to join in Discord * @param req.body.channelId The Channel ID to join in Discord
* @param req.body.presetName The preset name to listen to in Discord * @param req.body.presetName The preset name to listen to in Discord
@@ -135,6 +150,17 @@ exports.requestNodeJoinServer = async (req, res) => {
await joinServerWrapper(req.body.presetName, req.body.channelId, req.body.clientId); await joinServerWrapper(req.body.presetName, req.body.channelId, req.body.clientId);
} }
/**
*
* @param {*} req Default express req from router
* @param {*} res Defualt express res from router
* @param {*} req.body.clientId The client ID to request to leave the server
*/
exports.requestNodeLeaveServer = async (req, res) => {
if (!req.body.ClientId) return res.status(400).json("Missing client ID in request");
await leaveServerWrapper({clientId: req.body.ClientId});
}
/** /**
* The node monitor service, this will periodically check in on the online nodes to make sure they are still online * The node monitor service, this will periodically check in on the online nodes to make sure they are still online
*/ */
@@ -143,6 +169,9 @@ exports.nodeMonitorService = class nodeMonitorService {
this.log = new DebugBuilder("server", "nodeMonitorService"); this.log = new DebugBuilder("server", "nodeMonitorService");
} }
/**
* Start the node monitor service in the background
*/
async start(){ async start(){
// Wait for the a portion of the refresh period before checking in with the nodes, so the rest of the bot can start // Wait for the a portion of the refresh period before checking in with the nodes, so the rest of the bot can start
await new Promise(resolve => setTimeout(resolve, refreshInterval/10)); await new Promise(resolve => setTimeout(resolve, refreshInterval/10));
@@ -161,6 +190,9 @@ exports.nodeMonitorService = class nodeMonitorService {
} }
} }
/**
* Check in with all online nodes and mark any nodes that are actually offline
*/
async checkInWithOnlineNodes(){ async checkInWithOnlineNodes(){
getOnlineNodes((nodes) => { getOnlineNodes((nodes) => {
this.log.DEBUG("Online Nodes: ", nodes); this.log.DEBUG("Online Nodes: ", nodes);