const express = require('express'); const index = require('../index'); const { PermissionsBitField, ChannelType } = require('discord.js'); const router = express.Router(); router.post('/createchannels', async (req, res) => { const { name, discordId } = req.body; if (!name || !discordId ) return res.status(400).send({ error: 'Name en discordId zijn vereist' }); try { const guild = await index.client.guilds.fetch(process.env.GUILD_ID); const category = await guild.channels.fetch(process.env.TEAM_CATEGORY_ID); const member = await guild.members.fetch(discordId) const textChannel = await guild.channels.create({ name: name, type: ChannelType.GuildText, parent: category, permissionOverwrites: [ { id: guild.id, deny: [PermissionsBitField.Flags.ViewChannel], }, { id: member.id, allow: [PermissionsBitField.Flags.ViewChannel] } ] }); const voiceChannel = await guild.channels.create({ name: name, type: ChannelType.GuildVoice, parent: category, permissionOverwrites: [ { id: guild.id, deny: [PermissionsBitField.Flags.ViewChannel], }, { id: member.id, allow: [PermissionsBitField.Flags.ViewChannel] } ] }); res.send({ textChannel, voiceChannel }); } catch (e) { console.log(e); return res.status(500).send({ error: 'Error tijdens het maken van discord channels' }) } }); router.post('/deletechannels', async (req, res) => { const { textChannelId, voiceChannelId } = req.body; if (!textChannelId, !voiceChannelId ) return res.status(400).send({ error: 'textChannelId en voiceChannelId zijn vereist' }); try { const guild = await index.client.guilds.fetch(process.env.GUILD_ID); const textChannel = await guild.channels.fetch(textChannelId); const voiceChannel = await guild.channels.fetch(voiceChannelId); await textChannel.delete() await voiceChannel.delete() res.send({ status: 'success' }); } catch (e) { console.log(e); return res.status(500).send({ error: 'Error tijdens het verwijderen van discord channels' }) } }); router.post('/removeteammember', async (req, res) => { const { textChannelId, voiceChannelId, discordId } = req.body; if (!textChannelId, !voiceChannelId, !discordId ) return res.status(400).send({ error: 'textChannelId, voiceChannelId en discordId zijn vereist' }); try { const guild = await index.client.guilds.fetch(process.env.GUILD_ID); const member = await guild.members.fetch(discordId) const textChannel = await guild.channels.fetch(textChannelId); const voiceChannel = await guild.channels.fetch(voiceChannelId); await textChannel.permissionOverwrites.delete(member) await voiceChannel.permissionOverwrites.delete(member) res.send({ status: 'success' }); } catch (e) { console.log(e); return res.status(500).send({ error: 'Error tijdens het verwijderen van een team member' }) } }); router.post('/addteammember', async (req, res) => { const { textChannelId, voiceChannelId, discordId } = req.body; if (!textChannelId, !voiceChannelId, !discordId ) return res.status(400).send({ error: 'textChannelId, voiceChannelId en discordId zijn vereist' }); try { const guild = await index.client.guilds.fetch(process.env.GUILD_ID); const member = await guild.members.fetch(discordId) const textChannel = await guild.channels.fetch(textChannelId); const voiceChannel = await guild.channels.fetch(voiceChannelId); await textChannel.permissionOverwrites.edit(member, { ViewChannel: true }) await voiceChannel.permissionOverwrites.edit(member, { ViewChannel: true }) res.send({ status: 'success' }); } catch (e) { console.log(e); return res.status(500).send({ error: 'Error tijdens het toevoegen van team member' }) } }); router.post('/edit', async (req, res) => { const { textChannelId, voiceChannelId, name } = req.body; if (!textChannelId, !voiceChannelId, !name ) return res.status(400).send({ error: 'textChannelId, voiceChannelId en name zijn vereist' }); try { const guild = await index.client.guilds.fetch(process.env.GUILD_ID); const textChannel = await guild.channels.fetch(textChannelId); const voiceChannel = await guild.channels.fetch(voiceChannelId); await textChannel.edit({ name: name }) await voiceChannel.edit({ name: name }) res.send({ status: 'success' }); } catch (e) { console.log(e); return res.status(500).send({ error: 'Error tijds het veranderen van Discord channel naam' }) } }); module.exports = router;