Simplify tag creation from entry

Testing that a tag exist or is assigned to the current entry isn't important in the tag controler since the `assignTagsToEntry` is already doing that job.
So it simplify the controller.
This commit is contained in:
Jeremy Benoist
2016-03-27 17:09:33 +02:00
parent 5a4ee4ae0f
commit 2baca964f3
3 changed files with 40 additions and 21 deletions

View File

@ -20,31 +20,17 @@ class TagController extends Controller
*/
public function addTagFormAction(Request $request, Entry $entry)
{
$tag = new Tag();
$form = $this->createForm(NewTagType::class, $tag);
$form = $this->createForm(NewTagType::class, new Tag());
$form->handleRequest($request);
if ($form->isValid()) {
$existingTag = $this->getDoctrine()
->getRepository('WallabagCoreBundle:Tag')
->findOneByLabel($tag->getLabel());
$this->get('wallabag_core.content_proxy')->assignTagsToEntry(
$entry,
$form->get('label')->getData()
);
$em = $this->getDoctrine()->getManager();
if (is_null($existingTag)) {
$this->get('wallabag_core.content_proxy')->assignTagsToEntry(
$entry,
$tag
);
$em->persist($tag);
} elseif (!$existingTag->hasEntry($entry)) {
$this->get('wallabag_core.content_proxy')->assignTagsToEntry(
$entry,
$existingTag
);
$em->persist($existingTag);
}
$em->persist($entry);
$em->flush();
$this->get('session')->getFlashBag()->add(