Select Git revision
CapsuleGroupController.php

Camille Simiand authored
CapsuleGroupController.php 4.22 KiB
<?php
namespace App\Controller;
use App\Entity\Capsule;
use App\Entity\Group;
use App\Entity\User;
use App\Form\CreateCapsuleGroupsFormType;
use App\Repository\CapsuleRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Routing\Annotation\Route;
class CapsuleGroupController extends AbstractController
{
private TranslatorInterface $translator;
private CapsuleRepository $capsule_repository;
private EntityManagerInterface $entity_manager;
public function __construct(
TranslatorInterface $translator,
CapsuleRepository $capsule_repository,
EntityManagerInterface $entity_manager
) {
$this->translator = $translator;
$this->capsule_repository = $capsule_repository;
$this->entity_manager = $entity_manager;
}
/**
* @Route("/capsule/{capsule_id}/groups/edit", name="edit_capsule_groups")
*/
public function edit(int $capsule_id, Request $request): Response
{
$current_user = $this->getUser();
if (! $current_user instanceof User) {
return $this->redirectToRoute('app_logout');
}
$form = $this->createForm(CreateCapsuleGroupsFormType::class);
$form->handleRequest($request);
$capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
if (! $capsule instanceof Capsule) {
throw new \Exception("Capsule does not exist");
}
$groups = $capsule->getGroups();
if ($form->isSubmitted() && $form->isValid()) {
// $group_name = $form->get('name')->getData();
// $group = new Group();
// $group->setName($group_name);
// $this->entity_manager->persist($group);
// $capsule->addGroup($group);
// $this->entity_manager->persist($capsule);
// $this->entity_manager->flush();
//
// $this->addFlash(
// 'success',
// $this->translator->trans(
// 'groups.add.success',
// [
// 'group_name' => $group->getName(),
// 'capsule_name' => $capsule->getName()
// ]
// )
// );
return $this->redirectToRoute('edit_capsule_groups', [
'capsule_id' => $capsule_id
]);
}
return $this->render('capsule/groups/edit.html.twig', [
'editCapsuleGroupsForm' => $form->createView(),
'capsule' => $capsule,
'groups' => $groups
]);
}
/**
* @Route("capsule/{capsule_id}/groups/create", name="create_group")
*/
public function create(int $capsule_id, Request $request): Response
{
$current_user = $this->getUser();
if (! $current_user instanceof User) {
return $this->redirectToRoute('app_logout');
}
$form = $this->createForm(CreateCapsuleGroupsFormType::class);
$form->handleRequest($request);
$capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
if (! $capsule instanceof Capsule) {
throw new \Exception("Capsule does not exist");
}
if ($form->isSubmitted() && $form->isValid()) {
$group_name = $form->get('name')->getData();
$group = new Group();
$group->setName($group_name);
$this->entity_manager->persist($group);
$this->entity_manager->flush();
$this->addFlash(
'success',
$this->translator->trans(
'groups.create.success',
[
'group_name' => $group->getName()
]
)
);
return $this->redirectToRoute('edit_capsule_groups', [
'capsule_id' => $capsule_id
]);
}
return $this->render('capsule/groups/create.html.twig', [
'createCapsuleGroupsForm' => $form->createView(),
'capsule' => $capsule
]);
}
}