diff --git a/src/Controller/Webhook/MailjetNewsletterWebhookController.php b/src/Controller/Webhook/MailjetNewsletterWebhookController.php index 13f33d3..93cecb0 100644 --- a/src/Controller/Webhook/MailjetNewsletterWebhookController.php +++ b/src/Controller/Webhook/MailjetNewsletterWebhookController.php @@ -51,7 +51,10 @@ final class MailjetNewsletterWebhookController extends AbstractController } /** - * @param array $payload + * Mailjet may send one event or a batch of events, so normalize both shapes + * into a list before dispatching. + * + * @param array $payload * @return list> */ private function normalizeEvents(array $payload): array @@ -61,7 +64,14 @@ final class MailjetNewsletterWebhookController extends AbstractController } if (array_is_list($payload)) { - return array_values(array_filter($payload, static fn (mixed $entry): bool => is_array($entry))); + $events = []; + foreach ($payload as $entry) { + if (true === is_array($entry)) { + $events[] = $entry; + } + } + + return $events; } return [$payload];