/** * {@inheritdoc} */ public function build(RequestInterface $request, HttpResponseInterface $response) { $url = $request->getParams()['url']; $json = $response->getBody(); $data = json_decode($json); if (!isset($data->Page)) { throw new ResultBuilderException("Required element was not present in response (Page)"); } $rawPage = $data->Page; // "Links" can be blank, so we don't check for it $requiredProperties = ["HeadContent", "HeadInstructions", "PageContent", "ServerSide"]; foreach ($requiredProperties as $expectedProperty) { if (!isset($rawPage->{$expectedProperty})) { throw new ResultBuilderException("Required element was not present in response (Page.{$expectedProperty})"); } } $page = new Page($rawPage); $page->setPageUrl($url); return new PageResult($response, $page); }
/** * @param RequestInterface $request * @return string[] */ protected function buildParams(RequestInterface $request) { return $request->getParams(); }