community-relations/src/api/loc.sh/routes/internal.ts

32 lines
1.5 KiB
TypeScript

import { Route, Server } from '../../../class';
import acknowledgements from '../../../configs/acknowledgements.json';
export default class Internal extends Route {
constructor(server: Server) {
super(server);
this.conf = {
path: '/int',
};
}
public bind() {
this.router.get('/directory', async (req, res) => {
try {
res.setHeader('Access-Control-Allow-Origin', '*');
if (req.query.id) {
let member = this.server.client.guilds.get(this.server.client.config.guildID).members.get(req.query.id.toString());
if (!member) member = await this.server.client.getRESTGuildMember(this.server.client.config.guildID, req.query.id.toString());
if (!member) return res.status(404).json({ code: this.constants.codes.NOT_FOUND, message: this.constants.messages.NOT_FOUND });
const pagerNumber = await this.server.client.db.PagerNumber.findOne({ individualAssignID: member.id }).lean().exec();
let status = false;
if (member.roles.includes('446104438969466890') || member.roles.includes('701481967149121627')) status = true;
return res.status(200).json({ staff: status, username: member.user.username, discriminator: member.user.discriminator, nick: member.nick, avatarURL: member.user.avatarURL, pager: pagerNumber?.num });
}
return res.status(200).json(acknowledgements);
} catch (err) {
return this.handleError(err, res);
}
});
}
}