Browse Source

Fix handling of downloads/favers in API when redis is offline

Jordi Boggiano 12 years ago
parent
commit
8f3985b3c0
1 changed files with 9 additions and 4 deletions
  1. 9 4
      src/Packagist/WebBundle/Controller/WebController.php

+ 9 - 4
src/Packagist/WebBundle/Controller/WebController.php

@@ -458,10 +458,15 @@ class WebController extends Controller
         if ('json' === $req->getRequestFormat()) {
             $package = $repo->getFullPackageByName($name);
 
-            $data = $package->toArray() + array(
-                'downloads' => $this->get('packagist.download_manager')->getDownloads($package),
-                'favers' => $this->get('packagist.favorite_manager')->getFaverCount($package)
-            );
+            $data = $package->toArray();
+
+            try {
+                $data['downloads'] = $this->get('packagist.download_manager')->getDownloads($package);
+                $data['favers'] = $this->get('packagist.favorite_manager')->getFaverCount($package);
+            } catch (ConnectionException $e) {
+                $data['downloads'] = null;
+                $data['favers'] = null;
+            }
 
             return new Response(json_encode(array('package' => $data)), 200);
         }