private function configurePublicResources(Request $request)
{
$em = $this->getDoctrine()->getManager();
$publicResourcesForm = $this->getPublicResourcesForm();
$translator = $this->container->get('translator');
$publicResourcesForm->handleRequest($request);
if ($publicResourcesForm->isValid()) {
$data = $publicResourcesForm->getData();
$existingResources = $em->getRepository('\\Newscoop\\GimmeBundle\\Entity\\PublicApiResource')->findAll();
foreach ($existingResources as $resource) {
if (!in_array($resource->getResource(), $data['routes'])) {
$em->remove($resource);
} else {
unset($data['routes'][array_search($resource->getResource(), $data['routes'])]);
}
}
foreach ($data['routes'] as $resource) {
$publicResource = new PublicApiResource();
$publicResource->setResource($resource);
$em->persist($publicResource);
}
$em->flush();
$this->get('session')->getFlashBag()->add('success', $translator->trans('publicresources.updated', array(), 'api'));
return $this->redirect($this->generateUrl('configure_api'));
}
}