feat(api): show guilds that the bot isn't in

This commit is contained in:
Isaac
2023-03-10 00:24:33 +00:00
parent 25d7cdaee8
commit ea9d3e4e33
6 changed files with 82 additions and 74 deletions

View File

@@ -3,18 +3,17 @@ const { PermissionsBitField } = require('discord.js');
module.exports.get = fastify => ({
handler: async (req, res) => {
const { client } = res.context.config;
const guilds = client.guilds.cache
.filter(async guild => {
const member = await guild.members.fetch(req.user.payload.id);
if (!member) return false;
return member.permissions.has(PermissionsBitField.Flags.ManageGuild);
})
.map(guild => ({
id: guild.id,
logo: guild.iconURL(),
name: guild.name,
}));
res.send(guilds);
const guilds = await (await fetch('https://discordapp.com/api/users/@me/guilds', { headers: { 'Authorization': `Bearer ${req.user.payload.access_token}` } })).json();
res.send(
guilds
.filter(guild => guild.owner || new PermissionsBitField(guild.permissions.toString()).has(PermissionsBitField.Flags.ManageGuild))
.map(guild => ({
added: client.guilds.cache.has(guild.id),
id: guild.id,
logo: `https://cdn.discordapp.com/icons/${guild.id}/${guild.icon}.webp`,
name: guild.name,
})),
);
},
onRequest: [fastify.authenticate],
});