parse-slack-interaction-request.ts 630 B

1234567891011121314151617
  1. import type { Response, NextFunction } from 'express';
  2. import type { RequestFromSlack } from '../interfaces/request-from-slack';
  3. import { InteractionPayloadAccessor } from '../utils/interaction-payload-accessor';
  4. export const parseSlackInteractionRequest = (req: RequestFromSlack, res: Response, next: NextFunction): Record<string, any> | void => {
  5. // There is no payload in the request from slack
  6. if (req.body.payload == null) {
  7. return next();
  8. }
  9. req.interactionPayload = JSON.parse(req.body.payload);
  10. req.interactionPayloadAccessor = new InteractionPayloadAccessor(req.interactionPayload);
  11. return next();
  12. };