Browse Source

Produce json in a saner way

Jordi Boggiano 13 years ago
parent
commit
61dab92778

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

@@ -34,16 +34,11 @@ class ApiController extends Controller
             ->getRepository('Packagist\WebBundle\Entity\Package')
             ->findAll();
 
-        $data = '{';
-        $cnt = count($packages);
-        foreach ($packages as $idx => $package) {
-            $data .= '"'.$package->getName().'":'.$package->toJson();
-            if ($cnt > $idx+1) {
-                $data .= ',';
-            }
+        $data = array();
+        foreach ($packages as $package) {
+            $data[$package->getName()] = $package->toArray();
         }
-        $data .= '}';
 
-        return new Response($data, 200, array('Content-Type' => 'application/json'));
+        return new Response(json_encode($data), 200, array('Content-Type' => 'application/json'));
     }
 }

+ 5 - 5
src/Packagist/WebBundle/Entity/Package.php

@@ -93,7 +93,7 @@ class Package
         $this->createdAt = new \DateTime;
     }
 
-    public function toJson()
+    public function toArray()
     {
         $versions = array();
         foreach ($this->getVersions() as $version) {
@@ -104,14 +104,14 @@ class Package
             $maintainers[] = $maintainer->toArray();
         }
         $data = array(
-            'name' => $this->name,
-            'description' => $this->description,
+            'name' => $this->getName(),
+            'description' => $this->getDescription(),
             'dist-tags' => array(),
             'maintainers' => $maintainers,
             'versions' => $versions,
-            'type' => $this->type,
+            'type' => $this->getType(),
         );
-        return json_encode($data);
+        return $data;
     }
 
     public function setRepositoryProvider(RepositoryProviderInterface $provider)