cloudservices/src/api/routes/Webhook.ts

33 lines
1.4 KiB
TypeScript

import { TextChannel } from 'eris';
import { Server } from '..';
import { Route, RichEmbed } from '../../class';
export default class Webhook extends Route {
constructor(server: Server) {
super(server, { path: '/wh', deprecated: false, maintenance: false });
}
public bind() {
this.router.post('/s1', async (req, res) => {
try {
if (req.headers.authorization !== this.server.security.keys.iv.toString('base64')) return res.status(401).json({ code: this.constants.codes.UNAUTHORIZED, message: this.constants.codes.UNAUTHORIZED });
const embed = new RichEmbed();
embed.setTitle('Service Request');
embed.setDescription(req.body.url);
embed.setColor('#FF00FF');
embed.addField('Ticket Number', req.body.key, true);
embed.addField('Reporter', req.body.reporter, true);
embed.addField('Status', req.body.status, true);
embed.addField('Summary', req.body.summary);
embed.setFooter(this.server.client.user.username, this.server.client.user.avatarURL);
embed.setTimestamp();
const chan = <TextChannel> this.server.client.getChannel('580950455581147146');
chan.createMessage({ embed });
return res.status(200).json({ code: this.constants.codes.SUCCESS, message: this.constants.codes.SUCCESS });
} catch (err) {
return this.handleError(err, res);
}
});
}
}