xaav 14 жил өмнө
parent
commit
ec87054dbe

+ 19 - 10
src/Packagist/WebBundle/Controller/WebController.php

@@ -61,7 +61,8 @@ class WebController extends Controller
         $request = $this->getRequest();
         if ($request->getMethod() == 'POST') {
             $form->bindRequest($request);
-            if($form->isValid()) {
+            $children = $form->getChildren();
+            if($children['repository']->isValid()) {
                 $this->get('session')->set('repository', $package->getRepository());
 
                 return new RedirectResponse($this->generateUrl('confirm'));
@@ -77,24 +78,28 @@ class WebController extends Controller
      */
     public function confirmPackageAction()
     {
-        if(!$repository = $this->get('session')->get('repository')) {
+        $session = $this->get('session');
+        $em = $this->getDoctrine()->getEntityManager();
 
-            return new RedirectResponse($this->generateUrl('submit'));
-        }
+        $package = new Package;
 
-        $em = $this->getDoctrine()->getEntityManager();
+        if($repository = $session->get('repository')) {
+            $session->remove('repository');
+            $package->setRepository($repository);
+            $package->fromProvider($this->get('packagist.repository_provider'));
 
-        $package = $em
-            ->getRepository('PackagistWebBundle:Package')
-            ->createFromRepository($this->get('packagist.repository_provider'), $repository);
+
+        }
 
         $form = $this->createForm(new ConfirmPackageType, $package);
 
         $request = $this->getRequest();
         if($request->getMethod() == 'POST') {
             $form->bindRequest($request);
+            $package->fromProvider($this->get('packagist.repository_provider'));
 
-            if ($form->isValid()) {
+            $children = $form->getChildren();
+            if($children['repository']->isValid()) {
                 $user = $this->getUser();
                 $package->addMaintainers($user);
 
@@ -107,8 +112,12 @@ class WebController extends Controller
                 return new RedirectResponse($this->generateUrl('home'));
             }
         }
+        elseif(!$repository) {
+
+            return new RedirectResponse($this->generateUrl('submit'));
+        }
 
-        return array('form' => $form->createView(), 'package' => $package, 'page' => 'confirm');
+        return array('form' => $form->createView(), 'package' => $package, 'page' => 'submit');
 
     }
 

+ 11 - 1
src/Packagist/WebBundle/Entity/Package.php

@@ -12,6 +12,8 @@
 
 namespace Packagist\WebBundle\Entity;
 
+use Packagist\WebBundle\Repository\RepositoryProviderInterface;
+
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
 use Symfony\Component\Validator\ExecutionContext;
@@ -39,7 +41,7 @@ class Package
      * Unique package name
      *
      * @ORM\Column
-     * Assert\NotBlank()
+     * @Assert\NotBlank()
      */
     private $name;
 
@@ -148,6 +150,14 @@ class Package
         // TODO check for uniqueness of package name
     }
 
+    public function fromProvider(RepositoryProviderInterface $provider)
+    {
+        $repo = $provider->getRepository($this->repository);
+        $composerFile = $repo->getComposerInformation('master');
+
+        $this->setName($composerFile['name']);
+    }
+
     /**
      * Get id
      *

+ 0 - 13
src/Packagist/WebBundle/Entity/PackageRepository.php

@@ -31,17 +31,4 @@ class PackageRepository extends EntityRepository
             ->setParameters(array(new \DateTime('-1hour')));
         return $qb->getQuery()->getResult();
     }
-
-    public function createFromRepository(RepositoryProviderInterface $provider, $repository)
-    {
-        $package = new Package;
-
-        $repo = $provider->getRepository($repository);
-        $composerFile = $repo->getComposerInformation('master');
-
-        $package->setName($composerFile['name']);
-        $package->setRepository($repository);
-
-        return $package;
-    }
 }