/** * @param IncomingPhysicalMessageContext $context * @param callable $next */ public function invoke($context, callable $next) { $physicalMessage = $context->getMessage(); $logicalMessage = $this->extractWithExceptionHandling($physicalMessage); if (!$logicalMessage) { throw new MessageDeserializationException($physicalMessage->getMessageId()); } $next($this->incomingContextFactory->createLogicalMessageContext($logicalMessage, $context)); }
/** * @param IncomingPhysicalMessageContext $context * @param callable $next */ public function invoke($context, callable $next) { $mutatorIds = $this->mutatorRegistry->getIncomingPhysicalMessageMutatorIds(); if (empty($mutatorIds)) { $next(); return; } $physicalMessage = $context->getMessage(); $mutatorContext = new IncomingPhysicalMessageMutationContext($physicalMessage->getBody(), $physicalMessage->getHeaders()); foreach ($mutatorIds as $mutatorId) { /** @var IncomingPhysicalMessageMutatorInterface $mutator */ $mutator = $context->getBuilder()->build($mutatorId); $mutator->mutateIncoming($mutatorContext); } $physicalMessage->replaceBody($mutatorContext->getBody()); $physicalMessage->replaceHeaders($mutatorContext->getHeaders()); $next(); }