/** * Unsets response if it was a notification * * @param FilterResponseEvent $event */ public function filterNotificationResponse(FilterResponseEvent $event) { $request = $event->getRequest(); if (!$request instanceof JsonRpcRequestInterface) { return; } if ($request->isNotification()) { $event->setResponse(null); } }
/** * Rewrites response to match request id if it was a JSON-RPC response * * @param FilterResponseEvent $event */ public function onFilterResponse(FilterResponseEvent $event) { /** @var JsonRpcRequestInterface $request */ $request = $event->getRequest(); if (!$request instanceof JsonRpcRequestInterface) { return; } // no need to rewrite id for notification response if ($request->isNotification()) { return; } $response = $event->getResponse(); // response id is set and correct if ($response instanceof JsonRpcResponseInterface && $response->getId() === $request->getId()) { return; } $response = new JsonRpcResponse($request->getId(), $response->getBody(), $response->getError()); $event->setResponse($response); }