Files
automatisch/packages/backend/src/routes/webhooks.ts
2023-03-09 12:46:32 +00:00

34 lines
919 B
TypeScript

import express, { Response, Router, NextFunction, RequestHandler } from 'express';
import multer from 'multer';
import { IRequest } from '@automatisch/types';
import appConfig from '../config/app';
import webhookHandler from '../controllers/webhooks/handler';
const router = Router();
const upload = multer();
router.use(upload.none());
router.use(express.text({
limit: appConfig.requestBodySizeLimit,
verify(req, res, buf) {
(req as IRequest).rawBody = buf;
},
}));
const exposeError = (handler: RequestHandler) => async (req: IRequest, res: Response, next: NextFunction) => {
try {
await handler(req, res, next);
} catch (err) {
res.send(err);
}
}
router.get('/:flowId', exposeError(webhookHandler));
router.put('/:flowId', exposeError(webhookHandler));
router.patch('/:flowId', exposeError(webhookHandler));
router.post('/:flowId', exposeError(webhookHandler));
export default router;