/** * @param Response $response * @return ProxyMediaInterface * * @throws MediaStorageClientManagerNotFoundException * @throws MediaStorageClientProxyMediaManagerException */ public function createFromResponse(Response $response) { if ($response && $response->isOk()) { $content = json_decode($response->getContent(), true); if ($content && !json_last_error() && is_array($content)) { $content = new ArrayCollection($content); } else { throw new MediaStorageClientProxyMediaManagerException('Client not response new value'); } } elseif ($response->getStatusCode() == 404) { throw new MediaStorageClientManagerNotFoundException(sprintf('Unable to find the object')); } else { throw new MediaStorageClientProxyMediaManagerException('Client response code: ' . $response->getStatusCode()); } $proxyMedia = $this->create(); $proxyMedia->setReferenceFull($content->get('reference_full')); $proxyMedia->setName($content->get('name')); $proxyMedia->setProviderMetadata($content->toArray()); return $proxyMedia; }