From 734a58dc25eab912700b14d37557c4fb9e270a4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Tue, 15 Aug 2023 14:14:24 +0200 Subject: [PATCH] Refactor controllers using ADR pattern --- src/Controller/Dlc/CreateAction.php | 47 ++++++ src/Controller/Dlc/DeleteAction.php | 31 ++++ src/Controller/Dlc/ListAction.php | 31 ++++ src/Controller/Dlc/UpdateAction.php | 47 ++++++ src/Controller/DlcController.php | 109 -------------- src/Controller/Home/IndexAction.php | 35 +++++ src/Controller/Home/JoinUsAction.php | 18 +++ .../MissionsAction.php} | 38 +---- src/Controller/Mod/CreateAction.php | 47 ++++++ src/Controller/Mod/DeleteAction.php | 31 ++++ src/Controller/Mod/ListAction.php | 31 ++++ src/Controller/Mod/UpdateAction.php | 52 +++++++ src/Controller/ModController.php | 114 -------------- src/Controller/ModGroup/CreateAction.php | 47 ++++++ src/Controller/ModGroup/DeleteAction.php | 31 ++++ src/Controller/ModGroup/ListAction.php | 31 ++++ src/Controller/ModGroup/UpdateAction.php | 47 ++++++ src/Controller/ModGroupController.php | 109 -------------- src/Controller/ModList/CopyAction.php | 52 +++++++ src/Controller/ModList/CreateAction.php | 47 ++++++ src/Controller/ModList/DeleteAction.php | 31 ++++ src/Controller/ModList/ListAction.php | 34 +++++ src/Controller/ModList/UpdateAction.php | 47 ++++++ src/Controller/ModListController.php | 141 ------------------ .../ModListPublic/CustomizeAction.php | 35 +++++ .../ModListPublic/DownloadAction.php | 45 ++++++ src/Controller/ModListPublic/SelectAction.php | 49 ++++++ src/Controller/ModListPublicController.php | 103 ------------- src/Controller/Security/ConnectAction.php | 33 ++++ .../Security/ConnectCheckAction.php | 19 +++ src/Controller/Security/LogoutAction.php | 19 +++ src/Controller/SecurityController.php | 62 -------- src/Controller/User/DeleteAction.php | 31 ++++ src/Controller/User/ListAction.php | 31 ++++ .../UpdateAction.php} | 47 +----- src/Controller/UserGroup/CreateAction.php | 47 ++++++ src/Controller/UserGroup/DeleteAction.php | 31 ++++ src/Controller/UserGroup/ListAction.php | 31 ++++ src/Controller/UserGroup/UpdateAction.php | 47 ++++++ src/Controller/UserGroupController.php | 109 -------------- src/Security/Traits/UserInterfaceTrait.php | 5 + .../IndexActionTest.php | 4 +- .../JoinUsActionTest.php | 4 +- .../MissionsActionTest.php | 4 +- .../CreateActionTest.php | 4 +- .../DeleteActionTest.php | 4 +- .../{ModController => Mod}/ListActionTest.php | 4 +- .../CreateActionTest.php | 4 +- .../DeleteActionTest.php | 4 +- .../ListActionTest.php | 4 +- .../CreateActionTest.php | 4 +- .../DeleteActionTest.php | 4 +- .../ListActionTest.php | 4 +- .../CustomizeActionTest.php | 4 +- .../DownloadActionTest.php | 4 +- .../SelectActionTest.php | 4 +- .../DeleteActionTest.php | 4 +- .../ListActionTest.php | 4 +- .../UpdateActionTest.php | 4 +- .../CreateActionTest.php | 4 +- .../DeleteActionTest.php | 4 +- .../ListActionTest.php | 4 +- 62 files changed, 1211 insertions(+), 865 deletions(-) create mode 100644 src/Controller/Dlc/CreateAction.php create mode 100644 src/Controller/Dlc/DeleteAction.php create mode 100644 src/Controller/Dlc/ListAction.php create mode 100644 src/Controller/Dlc/UpdateAction.php delete mode 100644 src/Controller/DlcController.php create mode 100644 src/Controller/Home/IndexAction.php create mode 100644 src/Controller/Home/JoinUsAction.php rename src/Controller/{HomeController.php => Home/MissionsAction.php} (52%) create mode 100644 src/Controller/Mod/CreateAction.php create mode 100644 src/Controller/Mod/DeleteAction.php create mode 100644 src/Controller/Mod/ListAction.php create mode 100644 src/Controller/Mod/UpdateAction.php delete mode 100644 src/Controller/ModController.php create mode 100644 src/Controller/ModGroup/CreateAction.php create mode 100644 src/Controller/ModGroup/DeleteAction.php create mode 100644 src/Controller/ModGroup/ListAction.php create mode 100644 src/Controller/ModGroup/UpdateAction.php delete mode 100644 src/Controller/ModGroupController.php create mode 100644 src/Controller/ModList/CopyAction.php create mode 100644 src/Controller/ModList/CreateAction.php create mode 100644 src/Controller/ModList/DeleteAction.php create mode 100644 src/Controller/ModList/ListAction.php create mode 100644 src/Controller/ModList/UpdateAction.php delete mode 100644 src/Controller/ModListController.php create mode 100644 src/Controller/ModListPublic/CustomizeAction.php create mode 100644 src/Controller/ModListPublic/DownloadAction.php create mode 100644 src/Controller/ModListPublic/SelectAction.php delete mode 100644 src/Controller/ModListPublicController.php create mode 100644 src/Controller/Security/ConnectAction.php create mode 100644 src/Controller/Security/ConnectCheckAction.php create mode 100644 src/Controller/Security/LogoutAction.php delete mode 100644 src/Controller/SecurityController.php create mode 100644 src/Controller/User/DeleteAction.php create mode 100644 src/Controller/User/ListAction.php rename src/Controller/{UserController.php => User/UpdateAction.php} (55%) create mode 100644 src/Controller/UserGroup/CreateAction.php create mode 100644 src/Controller/UserGroup/DeleteAction.php create mode 100644 src/Controller/UserGroup/ListAction.php create mode 100644 src/Controller/UserGroup/UpdateAction.php delete mode 100644 src/Controller/UserGroupController.php rename tests/functional/Controller/{HomeController => Home}/IndexActionTest.php (94%) rename tests/functional/Controller/{HomeController => Home}/JoinUsActionTest.php (94%) rename tests/functional/Controller/{HomeController => Home}/MissionsActionTest.php (94%) rename tests/functional/Controller/{ModController => Mod}/CreateActionTest.php (94%) rename tests/functional/Controller/{ModController => Mod}/DeleteActionTest.php (96%) rename tests/functional/Controller/{ModController => Mod}/ListActionTest.php (94%) rename tests/functional/Controller/{ModGroupController => ModGroup}/CreateActionTest.php (94%) rename tests/functional/Controller/{ModGroupController => ModGroup}/DeleteActionTest.php (96%) rename tests/functional/Controller/{ModGroupController => ModGroup}/ListActionTest.php (94%) rename tests/functional/Controller/{ModListController => ModList}/CreateActionTest.php (94%) rename tests/functional/Controller/{ModListController => ModList}/DeleteActionTest.php (96%) rename tests/functional/Controller/{ModListController => ModList}/ListActionTest.php (94%) rename tests/functional/Controller/{ModListPublicController => ModListPublic}/CustomizeActionTest.php (94%) rename tests/functional/Controller/{ModListPublicController => ModListPublic}/DownloadActionTest.php (97%) rename tests/functional/Controller/{ModListPublicController => ModListPublic}/SelectActionTest.php (90%) rename tests/functional/Controller/{UserController => User}/DeleteActionTest.php (97%) rename tests/functional/Controller/{UserController => User}/ListActionTest.php (94%) rename tests/functional/Controller/{UserController => User}/UpdateActionTest.php (96%) rename tests/functional/Controller/{UserGroupController => UserGroup}/CreateActionTest.php (94%) rename tests/functional/Controller/{UserGroupController => UserGroup}/DeleteActionTest.php (96%) rename tests/functional/Controller/{UserGroupController => UserGroup}/ListActionTest.php (94%) diff --git a/src/Controller/Dlc/CreateAction.php b/src/Controller/Dlc/CreateAction.php new file mode 100644 index 00000000..6d7cd4c0 --- /dev/null +++ b/src/Controller/Dlc/CreateAction.php @@ -0,0 +1,47 @@ +createForm(DlcFormType::class, $dlcFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $dlc = $this->dataTransformerRegistry->transformToEntity($dlcFormDto); + + $this->entityManager->persist($dlc); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_dlc_list'); + } + + return $this->render('dlc/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/Dlc/DeleteAction.php b/src/Controller/Dlc/DeleteAction.php new file mode 100644 index 00000000..7109333f --- /dev/null +++ b/src/Controller/Dlc/DeleteAction.php @@ -0,0 +1,31 @@ +entityManager->remove($dlc); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_dlc_list'); + } +} diff --git a/src/Controller/Dlc/ListAction.php b/src/Controller/Dlc/ListAction.php new file mode 100644 index 00000000..3b5ba269 --- /dev/null +++ b/src/Controller/Dlc/ListAction.php @@ -0,0 +1,31 @@ +dlcRepository->findBy([], ['name' => 'ASC']); + + return $this->render('dlc/list.html.twig', [ + 'dlcs' => $dlcs, + ]); + } +} diff --git a/src/Controller/Dlc/UpdateAction.php b/src/Controller/Dlc/UpdateAction.php new file mode 100644 index 00000000..38e170df --- /dev/null +++ b/src/Controller/Dlc/UpdateAction.php @@ -0,0 +1,47 @@ +dataTransformerRegistry->transformFromEntity(new DlcFormDto(), $dlc); + $form = $this->createForm(DlcFormType::class, $dlcFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $this->dataTransformerRegistry->transformToEntity($dlcFormDto, $dlc); + + $this->entityManager->flush(); + + return $this->redirectToRoute('app_dlc_list'); + } + + return $this->render('dlc/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/DlcController.php b/src/Controller/DlcController.php deleted file mode 100644 index 44db5647..00000000 --- a/src/Controller/DlcController.php +++ /dev/null @@ -1,109 +0,0 @@ -dlcRepository->findBy([], ['name' => 'ASC']); - - return $this->render('dlc/list.html.twig', [ - 'dlcs' => $dlcs, - ]); - } - - /** - * @Route("/create", name="_create") - * - * @IsGranted(PermissionsEnum::DLC_CREATE) - */ - public function createAction(Request $request): Response - { - $dlcFormDto = new DlcFormDto(); - $form = $this->createForm(DlcFormType::class, $dlcFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $dlc = $this->dataTransformerRegistry->transformToEntity($dlcFormDto); - - $this->entityManager->persist($dlc); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_dlc_list'); - } - - return $this->render('dlc/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{id}/update", name="_update") - * - * @IsGranted(PermissionsEnum::DLC_UPDATE, subject="dlc") - */ - public function updateAction(Request $request, Dlc $dlc): Response - { - $dlcFormDto = $this->dataTransformerRegistry->transformFromEntity(new DlcFormDto(), $dlc); - $form = $this->createForm(DlcFormType::class, $dlcFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($dlcFormDto, $dlc); - - $this->entityManager->flush(); - - return $this->redirectToRoute('app_dlc_list'); - } - - return $this->render('dlc/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{id}/delete", name="_delete") - * - * @IsGranted(PermissionsEnum::DLC_DELETE, subject="dlc") - */ - public function deleteAction(Dlc $dlc): Response - { - $this->entityManager->remove($dlc); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_dlc_list'); - } -} diff --git a/src/Controller/Home/IndexAction.php b/src/Controller/Home/IndexAction.php new file mode 100644 index 00000000..4c6dc0f1 --- /dev/null +++ b/src/Controller/Home/IndexAction.php @@ -0,0 +1,35 @@ +missionClient->getNextUpcomingMission(); + } catch (\Exception $ex) { + $this->logger->warning('Could not fetch nearest mission', ['ex' => $ex]); + $nearestMission = null; + } + + return $this->render('home/index/index.html.twig', [ + 'nearestMission' => $nearestMission, + ]); + } +} diff --git a/src/Controller/Home/JoinUsAction.php b/src/Controller/Home/JoinUsAction.php new file mode 100644 index 00000000..74fe0b55 --- /dev/null +++ b/src/Controller/Home/JoinUsAction.php @@ -0,0 +1,18 @@ +render('home/join_us/join_us.html.twig'); + } +} diff --git a/src/Controller/HomeController.php b/src/Controller/Home/MissionsAction.php similarity index 52% rename from src/Controller/HomeController.php rename to src/Controller/Home/MissionsAction.php index 4d62b008..87c1e3a5 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/Home/MissionsAction.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Controller; +namespace App\Controller\Home; use App\Service\Mission\MissionClientInterface; use Psr\Log\LoggerInterface; @@ -10,10 +10,7 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -/** - * @Route("/", name="app_home") - */ -class HomeController extends AbstractController +class MissionsAction extends AbstractController { public function __construct( private MissionClientInterface $missionClient, @@ -21,35 +18,8 @@ public function __construct( ) { } - /** - * @Route("", name="_index") - */ - public function indexAction(): Response - { - try { - $nearestMission = $this->missionClient->getNextUpcomingMission(); - } catch (\Exception $ex) { - $this->logger->warning('Could not fetch nearest mission', ['ex' => $ex]); - $nearestMission = null; - } - - return $this->render('home/index/index.html.twig', [ - 'nearestMission' => $nearestMission, - ]); - } - - /** - * @Route("/join-us", name="_join_us") - */ - public function joinUsAction(): Response - { - return $this->render('home/join_us/join_us.html.twig'); - } - - /** - * @Route("/missions", name="_missions") - */ - public function missionsAction(): Response + #[Route('/missions', name: 'app_home_missions')] + public function __invoke(): Response { try { $upcomingMissions = $this->missionClient->getUpcomingMissions(); diff --git a/src/Controller/Mod/CreateAction.php b/src/Controller/Mod/CreateAction.php new file mode 100644 index 00000000..d91fec7f --- /dev/null +++ b/src/Controller/Mod/CreateAction.php @@ -0,0 +1,47 @@ +createForm(ModFormType::class, $modFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $mod = $this->dataTransformerRegistry->transformToEntity($modFormDto); + + $this->entityManager->persist($mod); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list'); + } + + return $this->render('mod/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/Mod/DeleteAction.php b/src/Controller/Mod/DeleteAction.php new file mode 100644 index 00000000..a56ba8ac --- /dev/null +++ b/src/Controller/Mod/DeleteAction.php @@ -0,0 +1,31 @@ +entityManager->remove($mod); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list'); + } +} diff --git a/src/Controller/Mod/ListAction.php b/src/Controller/Mod/ListAction.php new file mode 100644 index 00000000..49bed17b --- /dev/null +++ b/src/Controller/Mod/ListAction.php @@ -0,0 +1,31 @@ +modRepository->findBy([], ['name' => 'ASC']); + + return $this->render('mod/list.html.twig', [ + 'mods' => $mods, + ]); + } +} diff --git a/src/Controller/Mod/UpdateAction.php b/src/Controller/Mod/UpdateAction.php new file mode 100644 index 00000000..3f9f4553 --- /dev/null +++ b/src/Controller/Mod/UpdateAction.php @@ -0,0 +1,52 @@ +dataTransformerRegistry->transformFromEntity(new ModFormDto(), $mod); + $form = $this->createForm(ModFormType::class, $modFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $updatedMod = $this->dataTransformerRegistry->transformToEntity($modFormDto, $mod); + + if (!$this->entityManager->contains($updatedMod)) { + $this->entityManager->remove($mod); + $this->entityManager->persist($updatedMod); + } + + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list'); + } + + return $this->render('mod/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/ModController.php b/src/Controller/ModController.php deleted file mode 100644 index e9bacde3..00000000 --- a/src/Controller/ModController.php +++ /dev/null @@ -1,114 +0,0 @@ -modRepository->findBy([], ['name' => 'ASC']); - - return $this->render('mod/list.html.twig', [ - 'mods' => $mods, - ]); - } - - /** - * @Route("/create", name="_create") - * - * @IsGranted(PermissionsEnum::MOD_CREATE) - */ - public function createAction(Request $request): Response - { - $modFormDto = new ModFormDto(); - $form = $this->createForm(ModFormType::class, $modFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $mod = $this->dataTransformerRegistry->transformToEntity($modFormDto); - - $this->entityManager->persist($mod); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list'); - } - - return $this->render('mod/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{id}/update", name="_update") - * - * @IsGranted(PermissionsEnum::MOD_UPDATE, subject="mod") - */ - public function updateAction(Request $request, AbstractMod $mod): Response - { - $modFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModFormDto(), $mod); - $form = $this->createForm(ModFormType::class, $modFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $updatedMod = $this->dataTransformerRegistry->transformToEntity($modFormDto, $mod); - - if (!$this->entityManager->contains($updatedMod)) { - $this->entityManager->remove($mod); - $this->entityManager->persist($updatedMod); - } - - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list'); - } - - return $this->render('mod/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{id}/delete", name="_delete") - * - * @IsGranted(PermissionsEnum::MOD_DELETE, subject="mod") - */ - public function deleteAction(AbstractMod $mod): Response - { - $this->entityManager->remove($mod); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list'); - } -} diff --git a/src/Controller/ModGroup/CreateAction.php b/src/Controller/ModGroup/CreateAction.php new file mode 100644 index 00000000..e5e135fd --- /dev/null +++ b/src/Controller/ModGroup/CreateAction.php @@ -0,0 +1,47 @@ +createForm(ModGroupFormType::class, $modGroupFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $modGroup = $this->dataTransformerRegistry->transformToEntity($modGroupFormDto); + + $this->entityManager->persist($modGroup); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_group_list'); + } + + return $this->render('mod_group/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/ModGroup/DeleteAction.php b/src/Controller/ModGroup/DeleteAction.php new file mode 100644 index 00000000..7dc39155 --- /dev/null +++ b/src/Controller/ModGroup/DeleteAction.php @@ -0,0 +1,31 @@ +entityManager->remove($modGroup); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_group_list'); + } +} diff --git a/src/Controller/ModGroup/ListAction.php b/src/Controller/ModGroup/ListAction.php new file mode 100644 index 00000000..7ae2f07c --- /dev/null +++ b/src/Controller/ModGroup/ListAction.php @@ -0,0 +1,31 @@ +modGroupRepository->findBy([], ['name' => 'ASC']); + + return $this->render('mod_group/list.html.twig', [ + 'modGroups' => $modGroups, + ]); + } +} diff --git a/src/Controller/ModGroup/UpdateAction.php b/src/Controller/ModGroup/UpdateAction.php new file mode 100644 index 00000000..3fcf06c8 --- /dev/null +++ b/src/Controller/ModGroup/UpdateAction.php @@ -0,0 +1,47 @@ +dataTransformerRegistry->transformFromEntity(new ModGroupFormDto(), $modGroup); + $form = $this->createForm(ModGroupFormType::class, $modGroupFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $this->dataTransformerRegistry->transformToEntity($modGroupFormDto, $modGroup); + + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_group_list'); + } + + return $this->render('mod_group/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/ModGroupController.php b/src/Controller/ModGroupController.php deleted file mode 100644 index f90030d3..00000000 --- a/src/Controller/ModGroupController.php +++ /dev/null @@ -1,109 +0,0 @@ -modGroupRepository->findBy([], ['name' => 'ASC']); - - return $this->render('mod_group/list.html.twig', [ - 'modGroups' => $modGroups, - ]); - } - - /** - * @Route("/create", name="_create") - * - * @IsGranted(PermissionsEnum::MOD_GROUP_CREATE) - */ - public function createAction(Request $request): Response - { - $modGroupFormDto = new ModGroupFormDto(); - $form = $this->createForm(ModGroupFormType::class, $modGroupFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $modGroup = $this->dataTransformerRegistry->transformToEntity($modGroupFormDto); - - $this->entityManager->persist($modGroup); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_group_list'); - } - - return $this->render('mod_group/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/update", name="_update") - * - * @IsGranted(PermissionsEnum::MOD_GROUP_UPDATE, subject="modGroup") - */ - public function updateAction(Request $request, ModGroup $modGroup): Response - { - $modGroupFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModGroupFormDto(), $modGroup); - $form = $this->createForm(ModGroupFormType::class, $modGroupFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($modGroupFormDto, $modGroup); - - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_group_list'); - } - - return $this->render('mod_group/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/delete", name="_delete") - * - * @IsGranted(PermissionsEnum::MOD_GROUP_DELETE, subject="modGroup") - */ - public function deleteAction(ModGroup $modGroup): Response - { - $this->entityManager->remove($modGroup); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_group_list'); - } -} diff --git a/src/Controller/ModList/CopyAction.php b/src/Controller/ModList/CopyAction.php new file mode 100644 index 00000000..6d3be4cd --- /dev/null +++ b/src/Controller/ModList/CopyAction.php @@ -0,0 +1,52 @@ +dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); + $modListFormDto->setId(null); // Entity will be treated as new by the unique name validator + $modListFormDto->setApproved(false); // Reset approval status + + $form = $this->createForm(ModListFormType::class, $modListFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $modListCopy = $this->dataTransformerRegistry->transformToEntity($modListFormDto); + + $this->entityManager->persist($modListCopy); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list_list'); + } + + return $this->render('mod_list/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/ModList/CreateAction.php b/src/Controller/ModList/CreateAction.php new file mode 100644 index 00000000..63ec2385 --- /dev/null +++ b/src/Controller/ModList/CreateAction.php @@ -0,0 +1,47 @@ +createForm(ModListFormType::class, $modListFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $modList = $this->dataTransformerRegistry->transformToEntity($modListFormDto); + + $this->entityManager->persist($modList); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list_list'); + } + + return $this->render('mod_list/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/ModList/DeleteAction.php b/src/Controller/ModList/DeleteAction.php new file mode 100644 index 00000000..586621e9 --- /dev/null +++ b/src/Controller/ModList/DeleteAction.php @@ -0,0 +1,31 @@ +entityManager->remove($modList); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list_list'); + } +} diff --git a/src/Controller/ModList/ListAction.php b/src/Controller/ModList/ListAction.php new file mode 100644 index 00000000..6b6cadfd --- /dev/null +++ b/src/Controller/ModList/ListAction.php @@ -0,0 +1,34 @@ +modListRepository->findBy([], [ + 'approved' => 'DESC', + 'name' => 'ASC', + ]); + + return $this->render('mod_list/list.html.twig', [ + 'modLists' => $modLists, + ]); + } +} diff --git a/src/Controller/ModList/UpdateAction.php b/src/Controller/ModList/UpdateAction.php new file mode 100644 index 00000000..60b10c55 --- /dev/null +++ b/src/Controller/ModList/UpdateAction.php @@ -0,0 +1,47 @@ +dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); + $form = $this->createForm(ModListFormType::class, $modListFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $this->dataTransformerRegistry->transformToEntity($modListFormDto, $modList); + + $this->entityManager->flush(); + + return $this->redirectToRoute('app_mod_list_list'); + } + + return $this->render('mod_list/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/ModListController.php b/src/Controller/ModListController.php deleted file mode 100644 index 338876fb..00000000 --- a/src/Controller/ModListController.php +++ /dev/null @@ -1,141 +0,0 @@ -modListRepository->findBy([], [ - 'approved' => 'DESC', - 'name' => 'ASC', - ]); - - return $this->render('mod_list/list.html.twig', [ - 'modLists' => $modLists, - ]); - } - - /** - * @Route("/create", name="_create") - * - * @IsGranted(PermissionsEnum::MOD_LIST_CREATE) - */ - public function createAction(Request $request): Response - { - $modListFormDto = new ModListFormDto(); - $form = $this->createForm(ModListFormType::class, $modListFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $modList = $this->dataTransformerRegistry->transformToEntity($modListFormDto); - - $this->entityManager->persist($modList); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list_list'); - } - - return $this->render('mod_list/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/update", name="_update") - * - * @IsGranted(PermissionsEnum::MOD_LIST_UPDATE, subject="modList") - */ - public function updateAction(Request $request, ModList $modList): Response - { - $modListFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); - $form = $this->createForm(ModListFormType::class, $modListFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($modListFormDto, $modList); - - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list_list'); - } - - return $this->render('mod_list/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/copy", name="_copy") - * - * @IsGranted(PermissionsEnum::MOD_LIST_COPY, subject="modList") - */ - public function copyAction(Request $request, ModList $modList): Response - { - /** @var ModListFormDto $modListFormDto */ - $modListFormDto = $this->dataTransformerRegistry->transformFromEntity(new ModListFormDto(), $modList); - $modListFormDto->setId(null); // Entity will be treated as new by the unique name validator - $modListFormDto->setApproved(false); // Reset approval status - - $form = $this->createForm(ModListFormType::class, $modListFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $modListCopy = $this->dataTransformerRegistry->transformToEntity($modListFormDto); - - $this->entityManager->persist($modListCopy); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list_list'); - } - - return $this->render('mod_list/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/delete", name="_delete") - * - * @IsGranted(PermissionsEnum::MOD_LIST_DELETE, subject="modList") - */ - public function deleteAction(ModList $modList): Response - { - $this->entityManager->remove($modList); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_mod_list_list'); - } -} diff --git a/src/Controller/ModListPublic/CustomizeAction.php b/src/Controller/ModListPublic/CustomizeAction.php new file mode 100644 index 00000000..0f6c7e4c --- /dev/null +++ b/src/Controller/ModListPublic/CustomizeAction.php @@ -0,0 +1,35 @@ +modRepository->findIncludedOptionalSteamWorkshopMods($modList); + $requiredMods = $this->modRepository->findIncludedRequiredSteamWorkshopMods($modList); + + return $this->render('mod_list_public/customize.html.twig', [ + 'modList' => $modList, + 'optionalMods' => $optionalMods, + 'requiredMods' => $requiredMods, + ]); + } +} diff --git a/src/Controller/ModListPublic/DownloadAction.php b/src/Controller/ModListPublic/DownloadAction.php new file mode 100644 index 00000000..57cb8c6a --- /dev/null +++ b/src/Controller/ModListPublic/DownloadAction.php @@ -0,0 +1,45 @@ + true])] + #[IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD, 'modList')] + public function __invoke(ModList $modList, string $optionalModsJson = null): Response + { + $name = sprintf('ArmaForces %s %s', $modList->getName(), (new \DateTimeImmutable())->format('Y_m_d H_i')); + $mods = $this->modRepository->findIncludedSteamWorkshopMods($modList); + $optionalMods = json_decode($optionalModsJson ?? '', true) ?: []; + + $template = $this->renderView('mod_list_public/launcher_preset_template.html.twig', [ + 'name' => $name, + 'modList' => $modList, + 'mods' => $mods, + 'optionalMods' => $optionalMods, + ]); + + return new Response($template, Response::HTTP_OK, [ + 'Content-Disposition' => HeaderUtils::makeDisposition( + HeaderUtils::DISPOSITION_ATTACHMENT, + $name.'.html' + ), + ]); + } +} diff --git a/src/Controller/ModListPublic/SelectAction.php b/src/Controller/ModListPublic/SelectAction.php new file mode 100644 index 00000000..e627cdef --- /dev/null +++ b/src/Controller/ModListPublic/SelectAction.php @@ -0,0 +1,49 @@ +modListRepository->findBy(['active' => true], [ + 'approved' => 'DESC', + 'name' => 'ASC', + ]); + + try { + $nextMission = $this->missionClient->getCurrentMission(); + } catch (\Exception $ex) { + $this->logger->warning('Could not fetch next upcoming', ['ex' => $ex]); + $nextMission = null; + } + + $nextMissionModList = null; + if ($nextMission) { + $nextMissionModList = $this->modListRepository->findOneBy(['name' => $nextMission->getModlist()]); + } + + return $this->render('mod_list_public/select.html.twig', [ + 'modLists' => $modLists, + 'nextMission' => $nextMission, + 'nextMissionModList' => $nextMissionModList, + ]); + } +} diff --git a/src/Controller/ModListPublicController.php b/src/Controller/ModListPublicController.php deleted file mode 100644 index dc1501c3..00000000 --- a/src/Controller/ModListPublicController.php +++ /dev/null @@ -1,103 +0,0 @@ -modListRepository->findBy(['active' => true], [ - 'approved' => 'DESC', - 'name' => 'ASC', - ]); - - try { - $nextMission = $this->missionClient->getCurrentMission(); - } catch (\Exception $ex) { - $this->logger->warning('Could not fetch next upcoming', ['ex' => $ex]); - $nextMission = null; - } - - $nextMissionModList = null; - if ($nextMission) { - $nextMissionModList = $this->modListRepository->findOneBy(['name' => $nextMission->getModlist()]); - } - - return $this->render('mod_list_public/select.html.twig', [ - 'modLists' => $modLists, - 'nextMission' => $nextMission, - 'nextMissionModList' => $nextMissionModList, - ]); - } - - /** - * @Route("/{name}", name="_customize") - * - * @IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD, subject="modList") - */ - public function customizeAction(ModList $modList): Response - { - $optionalMods = $this->modRepository->findIncludedOptionalSteamWorkshopMods($modList); - $requiredMods = $this->modRepository->findIncludedRequiredSteamWorkshopMods($modList); - - return $this->render('mod_list_public/customize.html.twig', [ - 'modList' => $modList, - 'optionalMods' => $optionalMods, - 'requiredMods' => $requiredMods, - ]); - } - - /** - * @Route("/{name}/download/{optionalModsJson}", name="_download", options={"expose": true}) - * - * @IsGranted(PermissionsEnum::MOD_LIST_DOWNLOAD, subject="modList") - */ - public function downloadAction(ModList $modList, string $optionalModsJson = null): Response - { - $name = sprintf('ArmaForces %s %s', $modList->getName(), (new \DateTimeImmutable())->format('Y_m_d H_i')); - $mods = $this->modRepository->findIncludedSteamWorkshopMods($modList); - $optionalMods = json_decode($optionalModsJson ?? '', true) ?: []; - - $template = $this->renderView('mod_list_public/launcher_preset_template.html.twig', [ - 'name' => $name, - 'modList' => $modList, - 'mods' => $mods, - 'optionalMods' => $optionalMods, - ]); - - return new Response($template, Response::HTTP_OK, [ - 'Content-Disposition' => HeaderUtils::makeDisposition( - HeaderUtils::DISPOSITION_ATTACHMENT, - $name.'.html' - ), - ]); - } -} diff --git a/src/Controller/Security/ConnectAction.php b/src/Controller/Security/ConnectAction.php new file mode 100644 index 00000000..ec4af4a0 --- /dev/null +++ b/src/Controller/Security/ConnectAction.php @@ -0,0 +1,33 @@ +getUser()) { + return $this->redirectToRoute('app_home_index'); + } + + return $clientRegistry + ->getClient('discord_main') + ->redirect([ + ScopeEnum::IDENTIFY, + ScopeEnum::EMAIL, + ScopeEnum::GUILDS, + ScopeEnum::CONNECTIONS, + ], []) + ; + } +} diff --git a/src/Controller/Security/ConnectCheckAction.php b/src/Controller/Security/ConnectCheckAction.php new file mode 100644 index 00000000..d4816cfd --- /dev/null +++ b/src/Controller/Security/ConnectCheckAction.php @@ -0,0 +1,19 @@ +getUser()) { - return $this->redirectToRoute('app_home_index'); - } - - return $clientRegistry - ->getClient('discord_main') - ->redirect([ - ScopeEnum::IDENTIFY, - ScopeEnum::EMAIL, - ScopeEnum::GUILDS, - ScopeEnum::CONNECTIONS, - ], []) - ; - } - - /** - * @Route("/connect/discord/check", name="_connect_discord_check") - * - * @throws \RuntimeException - * - * @see DiscordAuthenticator - */ - public function connectCheckAction(): Response - { - throw new \RuntimeException('This should never be executed!'); - } - - /** - * @Route("/logout", name="_logout") - * - * @throws \RuntimeException - */ - public function logoutAction(): Response - { - throw new \RuntimeException('This should never be executed!'); - } -} diff --git a/src/Controller/User/DeleteAction.php b/src/Controller/User/DeleteAction.php new file mode 100644 index 00000000..49a8033d --- /dev/null +++ b/src/Controller/User/DeleteAction.php @@ -0,0 +1,31 @@ +entityManager->remove($user); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_user_list'); + } +} diff --git a/src/Controller/User/ListAction.php b/src/Controller/User/ListAction.php new file mode 100644 index 00000000..a5a16212 --- /dev/null +++ b/src/Controller/User/ListAction.php @@ -0,0 +1,31 @@ +userRepository->findBy([], ['username' => 'ASC']); + + return $this->render('user/list.html.twig', [ + 'users' => $users, + ]); + } +} diff --git a/src/Controller/UserController.php b/src/Controller/User/UpdateAction.php similarity index 55% rename from src/Controller/UserController.php rename to src/Controller/User/UpdateAction.php index 0c0e22ec..5d08a99e 100644 --- a/src/Controller/UserController.php +++ b/src/Controller/User/UpdateAction.php @@ -2,13 +2,12 @@ declare(strict_types=1); -namespace App\Controller; +namespace App\Controller\User; use App\Entity\User\User; use App\Form\DataTransformerRegistry; use App\Form\User\Dto\UserFormDto; use App\Form\User\UserFormType; -use App\Repository\User\UserRepository; use App\Security\Enum\PermissionsEnum; use Doctrine\ORM\EntityManagerInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; @@ -17,40 +16,17 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -/** - * @Route("/user", name="app_user") - * - * @IsGranted("ROLE_USER") - */ -class UserController extends AbstractController +class UpdateAction extends AbstractController { public function __construct( private EntityManagerInterface $entityManager, - private UserRepository $userRepository, private DataTransformerRegistry $dataTransformerRegistry ) { } - /** - * @Route("/list", name="_list") - * - * @IsGranted(PermissionsEnum::USER_LIST) - */ - public function listAction(): Response - { - $users = $this->userRepository->findAll(); - - return $this->render('user/list.html.twig', [ - 'users' => $users, - ]); - } - - /** - * @Route("/{id}/update", name="_update") - * - * @IsGranted(PermissionsEnum::USER_UPDATE, subject="user") - */ - public function updateAction(Request $request, User $user): Response + #[Route('/user/{id}/update', name: 'app_user_update')] + #[IsGranted(PermissionsEnum::USER_UPDATE, 'user')] + public function __invoke(Request $request, User $user): Response { $userFormDto = $this->dataTransformerRegistry->transformFromEntity(new UserFormDto(), $user); $form = $this->createForm(UserFormType::class, $userFormDto, [ @@ -71,17 +47,4 @@ public function updateAction(Request $request, User $user): Response 'form' => $form->createView(), ]); } - - /** - * @Route("/{id}/delete", name="_delete") - * - * @IsGranted(PermissionsEnum::USER_DELETE, subject="user") - */ - public function deleteAction(User $user): Response - { - $this->entityManager->remove($user); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_user_list'); - } } diff --git a/src/Controller/UserGroup/CreateAction.php b/src/Controller/UserGroup/CreateAction.php new file mode 100644 index 00000000..9a18a119 --- /dev/null +++ b/src/Controller/UserGroup/CreateAction.php @@ -0,0 +1,47 @@ +createForm(UserGroupFormType::class, $userGroupFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $userGroup = $this->dataTransformerRegistry->transformToEntity($userGroupFormDto); + + $this->entityManager->persist($userGroup); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_user_group_list'); + } + + return $this->render('user_group/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/UserGroup/DeleteAction.php b/src/Controller/UserGroup/DeleteAction.php new file mode 100644 index 00000000..c790b428 --- /dev/null +++ b/src/Controller/UserGroup/DeleteAction.php @@ -0,0 +1,31 @@ +entityManager->remove($userGroup); + $this->entityManager->flush(); + + return $this->redirectToRoute('app_user_group_list'); + } +} diff --git a/src/Controller/UserGroup/ListAction.php b/src/Controller/UserGroup/ListAction.php new file mode 100644 index 00000000..bdd2fff1 --- /dev/null +++ b/src/Controller/UserGroup/ListAction.php @@ -0,0 +1,31 @@ +userGroupRepository->findBy([], ['name' => 'ASC']); + + return $this->render('user_group/list.html.twig', [ + 'userGroups' => $userGroups, + ]); + } +} diff --git a/src/Controller/UserGroup/UpdateAction.php b/src/Controller/UserGroup/UpdateAction.php new file mode 100644 index 00000000..478206db --- /dev/null +++ b/src/Controller/UserGroup/UpdateAction.php @@ -0,0 +1,47 @@ +dataTransformerRegistry->transformFromEntity(new UserGroupFormDto(), $userGroup); + $form = $this->createForm(UserGroupFormType::class, $userGroupFormDto); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $this->dataTransformerRegistry->transformToEntity($userGroupFormDto, $userGroup); + + $this->entityManager->flush(); + + return $this->redirectToRoute('app_user_group_list'); + } + + return $this->render('user_group/form.html.twig', [ + 'form' => $form->createView(), + ]); + } +} diff --git a/src/Controller/UserGroupController.php b/src/Controller/UserGroupController.php deleted file mode 100644 index 374729bf..00000000 --- a/src/Controller/UserGroupController.php +++ /dev/null @@ -1,109 +0,0 @@ -userGroupRepository->findBy([], ['name' => 'ASC']); - - return $this->render('user_group/list.html.twig', [ - 'userGroups' => $userGroups, - ]); - } - - /** - * @Route("/create", name="_create") - * - * @IsGranted(PermissionsEnum::USER_GROUP_CREATE) - */ - public function createAction(Request $request): Response - { - $userGroupFormDto = new UserGroupFormDto(); - $form = $this->createForm(UserGroupFormType::class, $userGroupFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $userGroup = $this->dataTransformerRegistry->transformToEntity($userGroupFormDto); - - $this->entityManager->persist($userGroup); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_user_group_list'); - } - - return $this->render('user_group/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/update", name="_update") - * - * @IsGranted(PermissionsEnum::USER_GROUP_UPDATE, subject="userGroup") - */ - public function updateAction(Request $request, UserGroup $userGroup): Response - { - $userGroupFormDto = $this->dataTransformerRegistry->transformFromEntity(new UserGroupFormDto(), $userGroup); - $form = $this->createForm(UserGroupFormType::class, $userGroupFormDto); - $form->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - $this->dataTransformerRegistry->transformToEntity($userGroupFormDto, $userGroup); - - $this->entityManager->flush(); - - return $this->redirectToRoute('app_user_group_list'); - } - - return $this->render('user_group/form.html.twig', [ - 'form' => $form->createView(), - ]); - } - - /** - * @Route("/{name}/delete", name="_delete") - * - * @IsGranted(PermissionsEnum::USER_GROUP_DELETE, subject="userGroup") - */ - public function deleteAction(UserGroup $userGroup): Response - { - $this->entityManager->remove($userGroup); - $this->entityManager->flush(); - - return $this->redirectToRoute('app_user_group_list'); - } -} diff --git a/src/Security/Traits/UserInterfaceTrait.php b/src/Security/Traits/UserInterfaceTrait.php index c95009d6..9b942523 100644 --- a/src/Security/Traits/UserInterfaceTrait.php +++ b/src/Security/Traits/UserInterfaceTrait.php @@ -8,6 +8,11 @@ trait UserInterfaceTrait { + public function getUserIdentifier(): string + { + return $this->getUsername(); + } + public function getPassword(): ?string { return null; diff --git a/tests/functional/Controller/HomeController/IndexActionTest.php b/tests/functional/Controller/Home/IndexActionTest.php similarity index 94% rename from tests/functional/Controller/HomeController/IndexActionTest.php rename to tests/functional/Controller/Home/IndexActionTest.php index a526d533..69dc675c 100644 --- a/tests/functional/Controller/HomeController/IndexActionTest.php +++ b/tests/functional/Controller/Home/IndexActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\HomeController; +namespace App\Tests\Functional\Controller\Home; use App\Repository\User\UserRepository; use App\Test\Enum\RouteEnum; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\HomeController + * @covers \App\Controller\Home\IndexAction */ final class IndexActionTest extends WebTestCase { diff --git a/tests/functional/Controller/HomeController/JoinUsActionTest.php b/tests/functional/Controller/Home/JoinUsActionTest.php similarity index 94% rename from tests/functional/Controller/HomeController/JoinUsActionTest.php rename to tests/functional/Controller/Home/JoinUsActionTest.php index b346a5ae..f272a53b 100644 --- a/tests/functional/Controller/HomeController/JoinUsActionTest.php +++ b/tests/functional/Controller/Home/JoinUsActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\HomeController; +namespace App\Tests\Functional\Controller\Home; use App\Repository\User\UserRepository; use App\Test\Enum\RouteEnum; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\HomeController + * @covers \App\Controller\Home\JoinUsAction */ final class JoinUsActionTest extends WebTestCase { diff --git a/tests/functional/Controller/HomeController/MissionsActionTest.php b/tests/functional/Controller/Home/MissionsActionTest.php similarity index 94% rename from tests/functional/Controller/HomeController/MissionsActionTest.php rename to tests/functional/Controller/Home/MissionsActionTest.php index b6a53128..7b0a4534 100644 --- a/tests/functional/Controller/HomeController/MissionsActionTest.php +++ b/tests/functional/Controller/Home/MissionsActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\HomeController; +namespace App\Tests\Functional\Controller\Home; use App\Repository\User\UserRepository; use App\Test\Enum\RouteEnum; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\HomeController + * @covers \App\Controller\Home\MissionsAction */ final class MissionsActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModController/CreateActionTest.php b/tests/functional/Controller/Mod/CreateActionTest.php similarity index 94% rename from tests/functional/Controller/ModController/CreateActionTest.php rename to tests/functional/Controller/Mod/CreateActionTest.php index 4809b1e2..ffa19d0a 100644 --- a/tests/functional/Controller/ModController/CreateActionTest.php +++ b/tests/functional/Controller/Mod/CreateActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModController; +namespace App\Tests\Functional\Controller\Mod; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\ModController + * @covers \App\Controller\Mod\CreateAction */ final class CreateActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModController/DeleteActionTest.php b/tests/functional/Controller/Mod/DeleteActionTest.php similarity index 96% rename from tests/functional/Controller/ModController/DeleteActionTest.php rename to tests/functional/Controller/Mod/DeleteActionTest.php index 36fc865f..b7695822 100644 --- a/tests/functional/Controller/ModController/DeleteActionTest.php +++ b/tests/functional/Controller/Mod/DeleteActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModController; +namespace App\Tests\Functional\Controller\Mod; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -18,7 +18,7 @@ /** * @internal - * @covers \App\Controller\ModController + * @covers \App\Controller\Mod\DeleteAction */ final class DeleteActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModController/ListActionTest.php b/tests/functional/Controller/Mod/ListActionTest.php similarity index 94% rename from tests/functional/Controller/ModController/ListActionTest.php rename to tests/functional/Controller/Mod/ListActionTest.php index 8a53853d..870fb68f 100644 --- a/tests/functional/Controller/ModController/ListActionTest.php +++ b/tests/functional/Controller/Mod/ListActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModController; +namespace App\Tests\Functional\Controller\Mod; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\ModController + * @covers \App\Controller\Mod\ListAction */ final class ListActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModGroupController/CreateActionTest.php b/tests/functional/Controller/ModGroup/CreateActionTest.php similarity index 94% rename from tests/functional/Controller/ModGroupController/CreateActionTest.php rename to tests/functional/Controller/ModGroup/CreateActionTest.php index d947367f..200a57e2 100644 --- a/tests/functional/Controller/ModGroupController/CreateActionTest.php +++ b/tests/functional/Controller/ModGroup/CreateActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModGroupController; +namespace App\Tests\Functional\Controller\ModGroup; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\ModGroupController + * @covers \App\Controller\ModGroup\CreateAction */ final class CreateActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModGroupController/DeleteActionTest.php b/tests/functional/Controller/ModGroup/DeleteActionTest.php similarity index 96% rename from tests/functional/Controller/ModGroupController/DeleteActionTest.php rename to tests/functional/Controller/ModGroup/DeleteActionTest.php index eea15c94..55ae28ea 100644 --- a/tests/functional/Controller/ModGroupController/DeleteActionTest.php +++ b/tests/functional/Controller/ModGroup/DeleteActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModGroupController; +namespace App\Tests\Functional\Controller\ModGroup; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -17,7 +17,7 @@ /** * @internal - * @covers \App\Controller\ModGroupController + * @covers \App\Controller\ModGroup\DeleteAction */ final class DeleteActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModGroupController/ListActionTest.php b/tests/functional/Controller/ModGroup/ListActionTest.php similarity index 94% rename from tests/functional/Controller/ModGroupController/ListActionTest.php rename to tests/functional/Controller/ModGroup/ListActionTest.php index 06e864f2..d4f4c5fb 100644 --- a/tests/functional/Controller/ModGroupController/ListActionTest.php +++ b/tests/functional/Controller/ModGroup/ListActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModGroupController; +namespace App\Tests\Functional\Controller\ModGroup; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\ModGroupController + * @covers \App\Controller\ModGroup\ListAction */ final class ListActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModListController/CreateActionTest.php b/tests/functional/Controller/ModList/CreateActionTest.php similarity index 94% rename from tests/functional/Controller/ModListController/CreateActionTest.php rename to tests/functional/Controller/ModList/CreateActionTest.php index 7922f879..3d19bac8 100644 --- a/tests/functional/Controller/ModListController/CreateActionTest.php +++ b/tests/functional/Controller/ModList/CreateActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModListController; +namespace App\Tests\Functional\Controller\ModList; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\ModListController + * @covers \App\Controller\ModList\CreateAction */ final class CreateActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModListController/DeleteActionTest.php b/tests/functional/Controller/ModList/DeleteActionTest.php similarity index 96% rename from tests/functional/Controller/ModListController/DeleteActionTest.php rename to tests/functional/Controller/ModList/DeleteActionTest.php index 57b46ac4..19b344d9 100644 --- a/tests/functional/Controller/ModListController/DeleteActionTest.php +++ b/tests/functional/Controller/ModList/DeleteActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModListController; +namespace App\Tests\Functional\Controller\ModList; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -17,7 +17,7 @@ /** * @internal - * @covers \App\Controller\ModListController + * @covers \App\Controller\ModList\DeleteAction */ final class DeleteActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModListController/ListActionTest.php b/tests/functional/Controller/ModList/ListActionTest.php similarity index 94% rename from tests/functional/Controller/ModListController/ListActionTest.php rename to tests/functional/Controller/ModList/ListActionTest.php index 462c32d4..ecf342fc 100644 --- a/tests/functional/Controller/ModListController/ListActionTest.php +++ b/tests/functional/Controller/ModList/ListActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModListController; +namespace App\Tests\Functional\Controller\ModList; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\ModListController + * @covers \App\Controller\ModList\ListAction */ final class ListActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModListPublicController/CustomizeActionTest.php b/tests/functional/Controller/ModListPublic/CustomizeActionTest.php similarity index 94% rename from tests/functional/Controller/ModListPublicController/CustomizeActionTest.php rename to tests/functional/Controller/ModListPublic/CustomizeActionTest.php index ca817e64..73a79f94 100644 --- a/tests/functional/Controller/ModListPublicController/CustomizeActionTest.php +++ b/tests/functional/Controller/ModListPublic/CustomizeActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModListPublicController; +namespace App\Tests\Functional\Controller\ModListPublic; use App\DataFixtures\ModList\DefaultModListFixture; use App\Repository\ModList\ModListRepository; @@ -16,7 +16,7 @@ /** * @internal - * @covers \App\Controller\ModListPublicController + * @covers \App\Controller\ModListPublic\CustomizeAction */ final class CustomizeActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModListPublicController/DownloadActionTest.php b/tests/functional/Controller/ModListPublic/DownloadActionTest.php similarity index 97% rename from tests/functional/Controller/ModListPublicController/DownloadActionTest.php rename to tests/functional/Controller/ModListPublic/DownloadActionTest.php index 1c9eade8..45555554 100644 --- a/tests/functional/Controller/ModListPublicController/DownloadActionTest.php +++ b/tests/functional/Controller/ModListPublic/DownloadActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModListPublicController; +namespace App\Tests\Functional\Controller\ModListPublic; use App\DataFixtures\Mod\Optional; use App\DataFixtures\Mod\Optional\AceInteractionMenuExpansionModFixture; @@ -21,7 +21,7 @@ /** * @internal - * @covers \App\Controller\ModListPublicController + * @covers \App\Controller\ModListPublic\DownloadAction */ final class DownloadActionTest extends WebTestCase { diff --git a/tests/functional/Controller/ModListPublicController/SelectActionTest.php b/tests/functional/Controller/ModListPublic/SelectActionTest.php similarity index 90% rename from tests/functional/Controller/ModListPublicController/SelectActionTest.php rename to tests/functional/Controller/ModListPublic/SelectActionTest.php index a94caf80..f185875f 100644 --- a/tests/functional/Controller/ModListPublicController/SelectActionTest.php +++ b/tests/functional/Controller/ModListPublic/SelectActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\ModListPublicController; +namespace App\Tests\Functional\Controller\ModListPublic; use App\Repository\User\UserRepository; use App\Test\Enum\RouteEnum; @@ -14,7 +14,7 @@ /** * @internal - * @covers \App\Controller\ModListPublicController + * @covers \App\Controller\ModListPublic\SelectAction */ final class SelectActionTest extends WebTestCase { diff --git a/tests/functional/Controller/UserController/DeleteActionTest.php b/tests/functional/Controller/User/DeleteActionTest.php similarity index 97% rename from tests/functional/Controller/UserController/DeleteActionTest.php rename to tests/functional/Controller/User/DeleteActionTest.php index 408bb95e..c89a2bbd 100644 --- a/tests/functional/Controller/UserController/DeleteActionTest.php +++ b/tests/functional/Controller/User/DeleteActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\UserController; +namespace App\Tests\Functional\Controller\User; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -16,7 +16,7 @@ /** * @internal - * @covers \App\Controller\UserController + * @covers \App\Controller\User\DeleteAction */ final class DeleteActionTest extends WebTestCase { diff --git a/tests/functional/Controller/UserController/ListActionTest.php b/tests/functional/Controller/User/ListActionTest.php similarity index 94% rename from tests/functional/Controller/UserController/ListActionTest.php rename to tests/functional/Controller/User/ListActionTest.php index 1ab3f515..5d485cee 100644 --- a/tests/functional/Controller/UserController/ListActionTest.php +++ b/tests/functional/Controller/User/ListActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\UserController; +namespace App\Tests\Functional\Controller\User; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\UserController + * @covers \App\Controller\User\ListAction */ final class ListActionTest extends WebTestCase { diff --git a/tests/functional/Controller/UserController/UpdateActionTest.php b/tests/functional/Controller/User/UpdateActionTest.php similarity index 96% rename from tests/functional/Controller/UserController/UpdateActionTest.php rename to tests/functional/Controller/User/UpdateActionTest.php index e5570f15..f23a1ebc 100644 --- a/tests/functional/Controller/UserController/UpdateActionTest.php +++ b/tests/functional/Controller/User/UpdateActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\UserController; +namespace App\Tests\Functional\Controller\User; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -16,7 +16,7 @@ /** * @internal - * @covers \App\Controller\UserController + * @covers \App\Controller\User\UpdateAction */ final class UpdateActionTest extends WebTestCase { diff --git a/tests/functional/Controller/UserGroupController/CreateActionTest.php b/tests/functional/Controller/UserGroup/CreateActionTest.php similarity index 94% rename from tests/functional/Controller/UserGroupController/CreateActionTest.php rename to tests/functional/Controller/UserGroup/CreateActionTest.php index 13a04d59..0e8de3e6 100644 --- a/tests/functional/Controller/UserGroupController/CreateActionTest.php +++ b/tests/functional/Controller/UserGroup/CreateActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\UserGroupController; +namespace App\Tests\Functional\Controller\UserGroup; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\UserGroupController + * @covers \App\Controller\UserGroup\CreateAction */ final class CreateActionTest extends WebTestCase { diff --git a/tests/functional/Controller/UserGroupController/DeleteActionTest.php b/tests/functional/Controller/UserGroup/DeleteActionTest.php similarity index 96% rename from tests/functional/Controller/UserGroupController/DeleteActionTest.php rename to tests/functional/Controller/UserGroup/DeleteActionTest.php index 44a77245..d1f77be8 100644 --- a/tests/functional/Controller/UserGroupController/DeleteActionTest.php +++ b/tests/functional/Controller/UserGroup/DeleteActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\UserGroupController; +namespace App\Tests\Functional\Controller\UserGroup; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -17,7 +17,7 @@ /** * @internal - * @covers \App\Controller\UserGroupController + * @covers \App\Controller\UserGroup\DeleteAction */ final class DeleteActionTest extends WebTestCase { diff --git a/tests/functional/Controller/UserGroupController/ListActionTest.php b/tests/functional/Controller/UserGroup/ListActionTest.php similarity index 94% rename from tests/functional/Controller/UserGroupController/ListActionTest.php rename to tests/functional/Controller/UserGroup/ListActionTest.php index 927b7d7e..32a82b80 100644 --- a/tests/functional/Controller/UserGroupController/ListActionTest.php +++ b/tests/functional/Controller/UserGroup/ListActionTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Functional\Controller\UserGroupController; +namespace App\Tests\Functional\Controller\UserGroup; use App\DataFixtures\User\AdminUserFixture; use App\DataFixtures\User\RegularUserFixture; @@ -15,7 +15,7 @@ /** * @internal - * @covers \App\Controller\UserGroupController + * @covers \App\Controller\UserGroup\ListAction */ final class ListActionTest extends WebTestCase {