From abc329453be6381bcf4d1b0dfd9f698312ed3b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 16 Feb 2016 13:49:25 +0100 Subject: Enhance documentation and create a form to create a new client --- .../CoreBundle/Controller/DeveloperController.php | 38 ++++++++++++++-------- 1 file changed, 25 insertions(+), 13 deletions(-) (limited to 'src/Wallabag/CoreBundle/Controller') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index edbcec4b..3b9da318 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -5,17 +5,17 @@ namespace Wallabag\CoreBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Wallabag\ApiBundle\Entity\Client; +use Wallabag\CoreBundle\Form\Type\ClientType; class DeveloperController extends Controller { /** - * @param Request $request - * * @Route("/developer", name="developer") * * @return \Symfony\Component\HttpFoundation\Response */ - public function indexAction(Request $request) + public function indexAction() { return $this->render('WallabagCoreBundle:Developer:index.html.twig'); } @@ -29,26 +29,38 @@ class DeveloperController extends Controller */ public function createClientAction(Request $request) { - $clientManager = $this->container->get('fos_oauth_server.client_manager.default'); - $client = $clientManager->createClient(); - $client->setRedirectUris(array('http://www.example.com')); - $client->setAllowedGrantTypes(array('token', 'authorization_code')); - $clientManager->updateClient($client); + $em = $this->getDoctrine()->getManager(); + $client = new Client(); + $clientForm = $this->createForm(ClientType::class, $client); + $clientForm->handleRequest($request); + + if ($clientForm->isValid()) { + $client->setAllowedGrantTypes(array('token', 'authorization_code')); + $em->persist($client); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'New client created.' + ); + + return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', array( + 'client_id' => $client->getPublicId(), + 'client_secret' => $client->getSecret(), + )); + } return $this->render('WallabagCoreBundle:Developer:client.html.twig', array( - 'client_id' => $client->getPublicId(), - 'client_secret' => $client->getSecret(), + 'form' => $clientForm->createView(), )); } /** - * @param Request $request - * * @Route("/developer/howto/first-app", name="howto-firstapp") * * @return \Symfony\Component\HttpFoundation\Response */ - public function howtoFirstAppAction(Request $request) + public function howtoFirstAppAction() { return $this->render('WallabagCoreBundle:Developer:howto_app.html.twig'); } -- cgit v1.2.3