8000 [Webhook] Pass original request to `RequestParserInterface` · symfony/symfony@bd6a3ce · GitHub
[go: up one dir, main page]

Skip to content

Commit bd6a3ce

Browse files
[Webhook] Pass original request to RequestParserInterface
1 parent 99b25a1 commit bd6a3ce

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

src/Symfony/Component/Webhook/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CHANGELOG
55
---
66

77
* Add `PayloadSerializerInterface` with implementations to decouple the remote event handling from the Serializer component
8+
* Add optional `$request` argument to `RequestParserInterface::createSuccessfulResponse()` and `RequestParserInterface::createRejectedResponse()`
89

910
6.4
1011
---

src/Symfony/Component/Webhook/Client/AbstractRequestParser.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ public function parse(Request $request, #[\SensitiveParameter] string $secret):
2929
return $this->doParse($request, $secret);
3030
}
3131

32-
public function createSuccessfulResponse(): Response
32+
public function createSuccessfulResponse(/* ?Request $request = null */): Response
3333
{
3434
return new Response('', 202);
3535
}
3636

37-
public function createRejectedResponse(string $reason): Response
37+
public function createRejectedResponse(string $reason/* , ?Request $request = null */): Response
3838
{
3939
return new Response($reason, 406);
4040
}

src/Symfony/Component/Webhook/Client/RequestParserInterface.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,13 @@ interface RequestParserInterface
3030
*/
3131
public function parse(Request $request, #[\SensitiveParameter] string $secret): ?RemoteEvent;
3232

33-
public function createSuccessfulResponse(): Response;
33+
/**
34+
* @param Request|null $request The original request that was received by the webhook controller
35+
*/
36+
public function createSuccessfulResponse(/* ?Request $request = null */): Response;
3437

35-
public function createRejectedResponse(string $reason): Response;
38+
/**
39+
* @param Request|null $request The original request that was received by the webhook controller
40+
*/
41+
public function createRejectedResponse(string $reason/* , ?Request $request = null */): Response;
3642
}

src/Symfony/Component/Webhook/Controller/WebhookController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ public function handle(string $type, Request $request): Response
4242
$parser = $this->parsers[$type]['parser'];
4343

4444
if (!$event = $parser->parse($request, $this->parsers[$type]['secret'])) {
45-
return $parser->createRejectedResponse('Unable to parse the webhook payload.');
45+
return $parser->createRejectedResponse('Unable to parse the webhook payload.', $request);
4646
}
4747

4848
$this->bus->dispatch(new ConsumeRemoteEventMessage($type, $event));
4949

50-
return $parser->createSuccessfulResponse();
50+
return $parser->createSuccessfulResponse($request);
5151
}
5252
}

0 commit comments

Comments
 (0)
0