Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

22 lignes
804 B

  1. const fs = require('fs-extra');
  2. module.exports = function(app) {
  3. app.all('/webhooks/:name', (req, res, next) => {
  4. const name = req.params.name;
  5. if (!/^[a-zA-Z0-9-_]+$/.test(name)) {
  6. res.status(400).json({error: `Invalid webhook name.`});
  7. } else if (fs.existsSync(`lib/webhooks/${name}.js`)) {
  8. const webhook = require(`../webhooks/${name}`);
  9. if (webhook.handler) {
  10. webhook.handler(req, res, next);
  11. } else {
  12. res.status(400).json({error: `Webhook ${name} has no handler.`});
  13. }
  14. } else {
  15. const webhook = require('../core/webhook');
  16. const handler = webhook.createHandler(name);
  17. handler(req, res, next);
  18. }
  19. });
  20. };