parse-slack-interaction-request.ts 624 B

1234567891011121314151617181920212223
  1. import type { NextFunction, Response } from 'express';
  2. import type { RequestFromSlack } from '../interfaces/request-from-slack';
  3. import { InteractionPayloadAccessor } from '../utils/interaction-payload-accessor';
  4. export const parseSlackInteractionRequest = (
  5. req: RequestFromSlack,
  6. _res: Response,
  7. next: NextFunction,
  8. ): void => {
  9. // There is no payload in the request from slack
  10. if (req.body.payload == null) {
  11. next();
  12. return;
  13. }
  14. req.interactionPayload = JSON.parse(req.body.payload);
  15. req.interactionPayloadAccessor = new InteractionPayloadAccessor(
  16. req.interactionPayload,
  17. );
  18. next();
  19. };