class DeveloperController extends Controller
{
/**
+ * List all clients and link to create a new one.
+ *
* @Route("/developer", name="developer")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function indexAction()
{
- return $this->render('WallabagCoreBundle:Developer:index.html.twig');
+ $clients = $this->getDoctrine()->getRepository('WallabagApiBundle:Client')->findAll();
+
+ return $this->render('WallabagCoreBundle:Developer:index.html.twig', [
+ 'clients' => $clients,
+ ]);
}
/**
+ * Create a client (an app).
+ *
* @param Request $request
*
- * @Route("/developer/client/create", name="create_client")
+ * @Route("/developer/client/create", name="developer_create_client")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
$clientForm->handleRequest($request);
if ($clientForm->isValid()) {
- $client->setAllowedGrantTypes(array('token', 'authorization_code','password'));
+ $client->setAllowedGrantTypes(['token', 'authorization_code', 'password', 'refresh_token']);
$em->persist($client);
$em->flush();
$this->get('session')->getFlashBag()->add(
'notice',
- 'New client created.'
+ 'flashes.developer.notice.client_created'
);
- return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', array(
+ return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', [
'client_id' => $client->getPublicId(),
'client_secret' => $client->getSecret(),
- ));
+ ]);
}
- return $this->render('WallabagCoreBundle:Developer:client.html.twig', array(
+ return $this->render('WallabagCoreBundle:Developer:client.html.twig', [
'form' => $clientForm->createView(),
- ));
+ ]);
}
/**
- * @Route("/developer/howto/first-app", name="howto-firstapp")
+ * Remove a client.
+ *
+ * @param Client $client
+ *
+ * @Route("/developer/client/delete/{id}", requirements={"id" = "\d+"}, name="developer_delete_client")
+ *
+ * @return \Symfony\Component\HttpFoundation\RedirectResponse
+ */
+ public function deleteClientAction(Client $client)
+ {
+ $em = $this->getDoctrine()->getManager();
+ $em->remove($client);
+ $em->flush();
+
+ $this->get('session')->getFlashBag()->add(
+ 'notice',
+ 'flashes.developer.notice.client_deleted'
+ );
+
+ return $this->redirect($this->generateUrl('developer'));
+ }
+
+ /**
+ * Display developer how to use an existing app.
+ *
+ * @Route("/developer/howto/first-app", name="developer_howto_firstapp")
*
* @return \Symfony\Component\HttpFoundation\Response
*/