#37 Working Joining and Leaving
This commit is contained in:
@@ -2,41 +2,12 @@
|
||||
const { SlashCommandBuilder } = require('discord.js');
|
||||
const { DebugBuilder } = require("../utilities/debugBuilder");
|
||||
const { getAllClientIds, getKeyByArrayValue, filterAutocompleteValues } = require("../utilities/utils");
|
||||
const { requestOptions, sendHttpRequest } = require("../utilities/httpRequests");
|
||||
const { checkNodeConnectionByClientId, removeNodeConnectionByNodeId, getAllConnections } = require('../utilities/mysqlHandler');
|
||||
const { getAllConnections } = require('../utilities/mysqlHandler');
|
||||
const { leaveServerWrapper } = require('../controllers/adminController');
|
||||
|
||||
// Global Vars
|
||||
const log = new DebugBuilder("server", "leave");
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} clientIdObject The client ID object for the node to leave the server. Either 'clientId'||'name' can be set.
|
||||
* @returns
|
||||
*/
|
||||
async function leaveServerWrapper(clientIdObject) {
|
||||
if (!clientIdObject.clientId || !clientIdObject.name) return log.ERROR("Tried to leave server without client ID and/or Name");
|
||||
|
||||
const node = await checkNodeConnectionByClientId(clientIdObject);
|
||||
|
||||
reqOptions = new requestOptions("/bot/leave", "POST", node.ip, node.port);
|
||||
|
||||
const responseObj = await new Promise((recordResolve, recordReject) => {
|
||||
sendHttpRequest(reqOptions, JSON.stringify({}), async (responseObj) => {
|
||||
recordResolve(responseObj);
|
||||
});
|
||||
});
|
||||
|
||||
log.VERBOSE("Response Object from node ", node, responseObj);
|
||||
if (!responseObj || !responseObj.statusCode == 202) return false;
|
||||
// Node has disconnected from discor
|
||||
// Removing the node connection from the DB
|
||||
const removedConnection = removeNodeConnectionByNodeId(node.id);
|
||||
log.DEBUG("Removed Node Connection: ", removedConnection);
|
||||
|
||||
return;
|
||||
}
|
||||
exports.leaveServerWrapper = leaveServerWrapper;
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('leave')
|
||||
@@ -64,7 +35,6 @@ module.exports = {
|
||||
log.DEBUG("Client names: ", clinetIds);
|
||||
const clientDiscordId = getKeyByArrayValue(clinetIds, {'name': botName});
|
||||
log.DEBUG("Selected bot: ", clinetIds[clientDiscordId]);
|
||||
// Need to create a table in DB to keep track of what bots have what IDs or an endpoint on the clients to return what ID they are running with
|
||||
await leaveServerWrapper(clinetIds[clientDiscordId]);
|
||||
|
||||
await interaction.editReply(`**${clinetIds[clientDiscordId].name}** has been disconnected`); // This will reply to the initial interaction
|
||||
|
||||
Reference in New Issue
Block a user