diff --git a/slash/getBoardDetails.js b/slash/getBoardDetails.js index bc29a4c..73a7b90 100644 --- a/slash/getBoardDetails.js +++ b/slash/getBoardDetails.js @@ -3,7 +3,7 @@ var http = require('unirest'); const { MessageActionRow, MessageSelectMenu } = require('discord.js'); // Our main list array - STORAGE -let boardList=[] +let boardList = [] let data let desc let columns = []; @@ -17,16 +17,15 @@ require("dotenv").config(); // Grab RUN - get Client, interaction from the bot exports.run = async (client, interaction) => { - - + // eslint-disable-line no-unused-vars // Defer to aloow for embed building await interaction.deferReply(); - + // Setting up our Request, using getAllProjects method var Request = http.get('https://' + process.env.ROOT_DOMAIN + '/jsonrpc.php').headers({ Accept: 'application/json', 'Content-Type': 'application/json' }).send({ "jsonrpc": "2.0", "method": "getAllProjects", "id": 0 }); - // Begin the request and send authenication using the jsonrpc2.0 protocol. + // Begin the request and send authenication using the jsonrpc2.0 protocol. Request.auth({ user: 'jsonrpc', pass: process.env.KANBOARD_API_KEY, @@ -37,23 +36,21 @@ exports.run = async (client, interaction) => { let data = response.body.result // Setting up the correct formatting for our paginator - const pusherFunc = board=>boardList.push({label: board.name, description: board.name, value:board.id}); + const pusherFunc = board => boardList.push({ label: board.name, description: board.name, value: board.id }); data.forEach(pusherFunc); - + console.log(boardList) const row = new MessageActionRow() - .addComponents( - new MessageSelectMenu() - .setCustomId('select') - .setPlaceholder('Select a Project') - .addOptions(boardList), - ); + .addComponents( + new MessageSelectMenu() + .setCustomId('select') + .setPlaceholder('Select a Project') + .addOptions(boardList), + ); - (async function(){ + (async function () { await interaction.editReply({ content: 'Use the menu below to choose a Project', components: [row] }); - })() - - + })() // await interaction.reply({ content: 'Pong!', components: [row] }); client.on('interactionCreate', interaction => { @@ -63,74 +60,60 @@ exports.run = async (client, interaction) => { (async () => { await interaction.update({ content: 'Selection Detected.', components: [] }); console.log(interaction.values[0]); - - var Request = http.get('https://board.grwh.work/jsonrpc.php').headers({ Accept: 'application/json', 'Content-Type': 'application/json' }).send({"jsonrpc": "2.0","method": "getBoard","id": 0,"params": [interaction.values[0]]}); + + var Request = http.get('https://board.grwh.work/jsonrpc.php').headers({ Accept: 'application/json', 'Content-Type': 'application/json' }).send({ "jsonrpc": "2.0", "method": "getBoard", "id": 0, "params": [interaction.values[0]] }); // Begin the request and send authenication using the jsonrpc2.0 protocol. - Request.auth({ - user: 'jsonrpc', - pass: process.env.KANBOARD_API_KEY, - sendImmediately: false - }).then(function (response) { - data = response.body.result[0] - console.log(data) + Request.auth({ + user: 'jsonrpc', + pass: process.env.KANBOARD_API_KEY, + sendImmediately: false + }).then(function (response) { + data = response.body.result[0] + console.log(data) - const date = require('date-and-time'); - const now = new Date(); + const date = require('date-and-time'); + const now = new Date(); - if (data.description == ''){ - desc = "N/A" - } else { - desc = data.description - } + if (data.description == '') { + desc = "N/A" + } else { + desc = data.description + } - const pusherFunc = column=>columns.push(column.title + " Position: " + column.nb_tasks + " tasks.\n"); - data.columns.forEach(pusherFunc); - - const mainEmbed = new MessageEmbed() - .setColor('#0099ff') - .addFields( - { name: 'Swimlane', value: data.name , inline: true }, - { name: 'Project ID', value: data.project_id , inline: true}, - { name: 'Description', value: desc }, - { name: 'Task Info', value: columns.join(" "), inline: true }, - { name: 'link', value: "https://" + process.env.ROOT_DOMAIN + "/board/" + data.project_id, inline: true } + const pusherFunc = column => columns.push(column.title + " Position: " + column.nb_tasks + " tasks.\n"); + data.columns.forEach(pusherFunc); + const mainEmbed = new MessageEmbed() + .setColor('#0099ff') + .addFields( + { name: 'Swimlane', value: data.name, inline: true }, + { name: 'Project ID', value: data.project_id, inline: true }, + { name: 'Description', value: desc }, + { name: 'Task Info', value: columns.join(" "), inline: true }, + { name: 'link', value: "https://" + process.env.ROOT_DOMAIN + "/board/" + data.project_id, inline: true }) + .setTitle('Requested Details') + .setDescription("Position " + data.position) + .setFooter(date.format(now, 'MM/DD/YYYY hh:mm:ss')); - - - - ) - .setTitle('Requested Details') - .setDescription("Position " + data.position) - - // .setThumbnail("https://wiki.codingvm.codes/paomedia-small-n-flat-terminal.ico") - - .setFooter(date.format(now, 'MM/DD/YYYY hh:mm:ss')); - - - - (async () => { - await interaction.editReply({ embeds: [mainEmbed] }); - })(); - - }) + (async () => { + await interaction.editReply({ embeds: [mainEmbed] }); + // Clear the list + boardList = []; + columns = []; + desc = ""; + })(); + }) })(); } }) -}) + }) } - // Clear the list - boardList = []; - desc = ""; - - - exports.commandData = { name: "projectdetails", description: "Lists all of the current projects",