mirror of
				https://github.com/kevinveenbirkenbach/infinito.git
				synced 2025-11-04 11:17:58 +00:00 
			
		
		
		
	Refactored ActionManagement
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
		 After Width: | Height: | Size: 187 KiB  | 
@@ -11,14 +11,14 @@ namespace Infinito\Domain\ActionManagement;
 | 
			
		||||
abstract class AbstractActionConstructor
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface
 | 
			
		||||
     * @var ActionDAOServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
    protected $actionService;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param ActionServiceInterface $actionService
 | 
			
		||||
     * @param ActionDAOServiceInterface $actionService
 | 
			
		||||
     */
 | 
			
		||||
    final public function __construct(ActionServiceInterface $actionService)
 | 
			
		||||
    final public function __construct(ActionDAOServiceInterface $actionService)
 | 
			
		||||
    {
 | 
			
		||||
        $this->actionService = $actionService;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -16,10 +16,10 @@ use Infinito\Domain\SecureManagement\SecureRequestedRightCheckerServiceInterface
 | 
			
		||||
/**
 | 
			
		||||
 * @author kevinfrantz
 | 
			
		||||
 */
 | 
			
		||||
final class ActionService implements ActionServiceInterface
 | 
			
		||||
final class ActionDAOService implements ActionDAOServiceInterface
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @var Request
 | 
			
		||||
     * @var RequestStack
 | 
			
		||||
     */
 | 
			
		||||
    private $requestStack;
 | 
			
		||||
 | 
			
		||||
@@ -64,7 +64,7 @@ final class ActionService implements ActionServiceInterface
 | 
			
		||||
    /**
 | 
			
		||||
     * {@inheritdoc}
 | 
			
		||||
     *
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionServiceInterface::getRequestedAction()
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionDAOServiceInterface::getRequestedAction()
 | 
			
		||||
     */
 | 
			
		||||
    public function getRequestedAction(): RequestedActionInterface
 | 
			
		||||
    {
 | 
			
		||||
@@ -74,7 +74,7 @@ final class ActionService implements ActionServiceInterface
 | 
			
		||||
    /**
 | 
			
		||||
     * {@inheritdoc}
 | 
			
		||||
     *
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionServiceInterface::isRequestedActionSecure()
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionDAOServiceInterface::isRequestedActionSecure()
 | 
			
		||||
     */
 | 
			
		||||
    public function isRequestedActionSecure(): bool
 | 
			
		||||
    {
 | 
			
		||||
@@ -92,7 +92,7 @@ final class ActionService implements ActionServiceInterface
 | 
			
		||||
    /**
 | 
			
		||||
     * {@inheritdoc}
 | 
			
		||||
     *
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionServiceInterface::getRequest()
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionDAOServiceInterface::getRequest()
 | 
			
		||||
     */
 | 
			
		||||
    public function getRequest(): Request
 | 
			
		||||
    {
 | 
			
		||||
@@ -100,9 +100,9 @@ final class ActionService implements ActionServiceInterface
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * {@use Infinito\Domain\RepositoryManagement\LayerRepositoryFactoryServiceInterface;inheritDoc}.
 | 
			
		||||
     * {@inheritdoc}
 | 
			
		||||
     *
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionServiceInterface::getRepository()
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionDAOServiceInterface::getRepository()
 | 
			
		||||
     */
 | 
			
		||||
    public function getRepository(): RepositoryInterface
 | 
			
		||||
    {
 | 
			
		||||
@@ -114,7 +114,7 @@ final class ActionService implements ActionServiceInterface
 | 
			
		||||
    /**
 | 
			
		||||
     * {@inheritdoc}
 | 
			
		||||
     *
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionServiceInterface::getEntityManager()
 | 
			
		||||
     * @see \Infinito\Domain\ActionManagement\ActionDAOServiceInterface::getEntityManager()
 | 
			
		||||
     */
 | 
			
		||||
    public function getEntityManager(): EntityManagerInterface
 | 
			
		||||
    {
 | 
			
		||||
@@ -13,7 +13,7 @@ use Doctrine\ORM\EntityManagerInterface;
 | 
			
		||||
 *
 | 
			
		||||
 * @author kevinfrantz
 | 
			
		||||
 */
 | 
			
		||||
interface ActionServiceInterface
 | 
			
		||||
interface ActionDAOServiceInterface
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @return RequestedActionInterface Returns the requested action
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
# ActionManagement
 | 
			
		||||
## Brainstorming
 | 
			
		||||

 | 
			
		||||
@@ -43,10 +43,13 @@ final class ProcessService implements ProcessServiceInterface
 | 
			
		||||
    /**
 | 
			
		||||
     * @return bool True if the the entity exist
 | 
			
		||||
     */
 | 
			
		||||
    private function doesEntityExist():bool{
 | 
			
		||||
    private function doesEntityExist(): bool
 | 
			
		||||
    {
 | 
			
		||||
        $requestedAction = $this->requestedActionService;
 | 
			
		||||
 | 
			
		||||
        return $requestedAction->hasRequestedEntity() && $requestedAction->getRequestedEntity()->hasIdentity();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return mixed|null
 | 
			
		||||
     *
 | 
			
		||||
@@ -63,10 +66,10 @@ final class ProcessService implements ProcessServiceInterface
 | 
			
		||||
        }
 | 
			
		||||
        // CREATE
 | 
			
		||||
        $this->requestedActionService->getRequestedEntity()->setClass(TextSource::class);
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param ActionHandlerServiceInterface               $actionHandlerService
 | 
			
		||||
     * @param ActionsResultsDAOServiceInterface           $actionTemplateDataStore
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@
 | 
			
		||||
namespace Infinito\Domain\ViewManagement;
 | 
			
		||||
 | 
			
		||||
use FOS\RestBundle\View\View;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionFactoryServiceInterface;
 | 
			
		||||
use Infinito\Domain\TemplateManagement\TemplateNameServiceInterface;
 | 
			
		||||
use Infinito\Domain\ParameterManagement\ValidGetParameterServiceInterface;
 | 
			
		||||
@@ -19,23 +18,18 @@ final class ViewBuilder implements ViewBuilderInterface
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string The path to the atom entity template
 | 
			
		||||
     */
 | 
			
		||||
    const TWIG_ENTITY_ATOM_TEMPLATE_PATH = 'entity/_entity.html.twig';
 | 
			
		||||
    private const TWIG_ENTITY_ATOM_TEMPLATE_PATH = 'entity/_entity.html.twig';
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string The path to the molecule entity template
 | 
			
		||||
     */
 | 
			
		||||
    const TWIG_ENTITY_MOLECULE_TEMPLATE_PATH = 'entity/entity.html.twig';
 | 
			
		||||
    private const TWIG_ENTITY_MOLECULE_TEMPLATE_PATH = 'entity/entity.html.twig';
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var View
 | 
			
		||||
     */
 | 
			
		||||
    private $view;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
    private $actionService;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionFactoryServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
@@ -90,15 +84,13 @@ final class ViewBuilder implements ViewBuilderInterface
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param ActionServiceInterface            $actionService
 | 
			
		||||
     * @param ActionFactoryServiceInterface     $actionFactoryService
 | 
			
		||||
     * @param TemplateNameServiceInterface      $templateNameService
 | 
			
		||||
     * @param ValidGetParameterServiceInterface $validGetParameterService
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct(ActionServiceInterface $actionService, ActionFactoryServiceInterface $actionFactoryService, TemplateNameServiceInterface $templateNameService, ValidGetParameterServiceInterface $validGetParameterService)
 | 
			
		||||
    public function __construct(ActionFactoryServiceInterface $actionFactoryService, TemplateNameServiceInterface $templateNameService, ValidGetParameterServiceInterface $validGetParameterService)
 | 
			
		||||
    {
 | 
			
		||||
        $this->view = View::create();
 | 
			
		||||
        $this->actionService = $actionService;
 | 
			
		||||
        $this->templateNameService = $templateNameService;
 | 
			
		||||
        $this->validGetParameterService = $validGetParameterService;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
namespace tests\Integration\Domain\ActionManagement;
 | 
			
		||||
 | 
			
		||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOServiceInterface;
 | 
			
		||||
use Doctrine\ORM\EntityManagerInterface;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -12,7 +12,7 @@ use Doctrine\ORM\EntityManagerInterface;
 | 
			
		||||
class ActionServiceIntegrationTest extends KernelTestCase
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface
 | 
			
		||||
     * @var ActionDAOServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
    private $actionService;
 | 
			
		||||
 | 
			
		||||
@@ -24,10 +24,10 @@ class ActionServiceIntegrationTest extends KernelTestCase
 | 
			
		||||
    public function setUp(): void
 | 
			
		||||
    {
 | 
			
		||||
        self::bootKernel();
 | 
			
		||||
        $this->actionService = self::$container->get(ActionServiceInterface::class);
 | 
			
		||||
        $this->actionService = self::$container->get(ActionDAOServiceInterface::class);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testEnityManager(): void
 | 
			
		||||
    public function testEntityManager(): void
 | 
			
		||||
    {
 | 
			
		||||
        $this->assertInstanceOf(EntityManagerInterface::class, $this->actionService->getEntityManager());
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,9 @@
 | 
			
		||||
namespace Tests\Integration\Domain\ActionManagement\Create;
 | 
			
		||||
 | 
			
		||||
use Infinito\Domain\ActionManagement\Create\CreateSourceAction;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionService;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOService;
 | 
			
		||||
use Infinito\Domain\ActionManagement\Create\CreateActionInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOServiceInterface;
 | 
			
		||||
use Symfony\Component\HttpFoundation\RequestStack;
 | 
			
		||||
use Infinito\Entity\Source\PureSourceInterface;
 | 
			
		||||
use Infinito\Domain\RequestManagement\Action\RequestedActionService;
 | 
			
		||||
@@ -39,7 +39,7 @@ class CreateSourceActionIntegrationTest extends KernelTestCase
 | 
			
		||||
    private $createSourceAction;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface
 | 
			
		||||
     * @var ActionDAOServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
    private $actionService;
 | 
			
		||||
 | 
			
		||||
@@ -80,7 +80,7 @@ class CreateSourceActionIntegrationTest extends KernelTestCase
 | 
			
		||||
        $layerRepositoryFactoryService = new LayerRepositoryFactoryService($entityManager);
 | 
			
		||||
        $rightTransformerService = new RightTransformerService();
 | 
			
		||||
        $secureRequestedRightChecker = new SecureRequestedRightCheckerService($rightTransformerService);
 | 
			
		||||
        $this->actionService = new ActionService($this->requestedActionService, $secureRequestedRightChecker, $this->requestStack, $layerRepositoryFactoryService, $entityFormBuilderService, $entityManager);
 | 
			
		||||
        $this->actionService = new ActionDAOService($this->requestedActionService, $secureRequestedRightChecker, $this->requestStack, $layerRepositoryFactoryService, $entityFormBuilderService, $entityManager);
 | 
			
		||||
        $this->createSourceAction = new CreateSourceAction($this->actionService);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ namespace tests\Unit\Domain\ActionManagement;
 | 
			
		||||
 | 
			
		||||
use PHPUnit\Framework\TestCase;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionFactoryService;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionInterface;
 | 
			
		||||
use Infinito\Domain\RequestManagement\Action\RequestedAction;
 | 
			
		||||
use Infinito\Domain\RequestManagement\Right\RequestedRight;
 | 
			
		||||
@@ -25,7 +25,7 @@ class ActionFactoryServiceTest extends TestCase
 | 
			
		||||
                $userSourceDirector = $this->createMock(UserSourceDirectorInterface::class);
 | 
			
		||||
                $requestedUser = new RequestedUser($userSourceDirector, $requestedRight);
 | 
			
		||||
                $requestedAction = new RequestedAction($requestedUser);
 | 
			
		||||
                $actionService = $this->createMock(ActionServiceInterface::class);
 | 
			
		||||
                $actionService = $this->createMock(ActionDAOServiceInterface::class);
 | 
			
		||||
                $actionService->method('getRequestedAction')->willReturn($requestedAction);
 | 
			
		||||
                $actionFactoryService = new ActionFactoryService($actionService);
 | 
			
		||||
                $requestedAction->setLayer($layer);
 | 
			
		||||
 
 | 
			
		||||
@@ -3,12 +3,12 @@
 | 
			
		||||
namespace tests\Unit\Domain\ActionManagement;
 | 
			
		||||
 | 
			
		||||
use PHPUnit\Framework\TestCase;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionService;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOService;
 | 
			
		||||
use Infinito\Domain\RequestManagement\Action\RequestedActionInterface;
 | 
			
		||||
use Doctrine\ORM\EntityManagerInterface;
 | 
			
		||||
use Symfony\Component\HttpFoundation\RequestStack;
 | 
			
		||||
use Infinito\Domain\RepositoryManagement\LayerRepositoryFactoryServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOServiceInterface;
 | 
			
		||||
use Infinito\Repository\RepositoryInterface;
 | 
			
		||||
use Symfony\Component\HttpFoundation\Request;
 | 
			
		||||
use Infinito\Domain\RequestManagement\Entity\RequestedEntityInterface;
 | 
			
		||||
@@ -50,7 +50,7 @@ class ActionServiceTest extends TestCase
 | 
			
		||||
    private $layerRepositoryFactoryService;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface
 | 
			
		||||
     * @var ActionDAOServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
    private $actionService;
 | 
			
		||||
 | 
			
		||||
@@ -84,7 +84,7 @@ class ActionServiceTest extends TestCase
 | 
			
		||||
        $this->requestStack = $this->createMock(RequestStack::class);
 | 
			
		||||
        $this->layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
 | 
			
		||||
        $this->entityManager = $this->createMock(EntityManagerInterface::class);
 | 
			
		||||
        $this->actionService = new ActionService($this->requestedActionService, $this->secureRequestedRightCheckerService, $this->requestStack, $this->layerRepositoryFactoryService, $this->requestedActionFormBuilderService, $this->entityManager);
 | 
			
		||||
        $this->actionService = new ActionDAOService($this->requestedActionService, $this->secureRequestedRightCheckerService, $this->requestStack, $this->layerRepositoryFactoryService, $this->requestedActionFormBuilderService, $this->entityManager);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function testIsRequestedActionSecure(): void
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ namespace tests\Unit\Domain\ActionManagement\Read;
 | 
			
		||||
use PHPUnit\Framework\TestCase;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\AbstractAction;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOServiceInterface;
 | 
			
		||||
use PHPUnit\Framework\MockObject\MockObject;
 | 
			
		||||
use Infinito\Exception\NotValidByFormException;
 | 
			
		||||
 | 
			
		||||
@@ -20,13 +20,13 @@ class AbstractActionTest extends TestCase
 | 
			
		||||
    private $action;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface|MockObject
 | 
			
		||||
     * @var ActionDAOServiceInterface|MockObject
 | 
			
		||||
     */
 | 
			
		||||
    private $actionService;
 | 
			
		||||
 | 
			
		||||
    public function setUp(): void
 | 
			
		||||
    {
 | 
			
		||||
        $this->actionService = $this->createMock(ActionServiceInterface::class);
 | 
			
		||||
        $this->actionService = $this->createMock(ActionDAOServiceInterface::class);
 | 
			
		||||
        $this->action = new class($this->actionService) extends AbstractAction {
 | 
			
		||||
            public $isSecure;
 | 
			
		||||
            public $validByForm;
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ namespace tests\Unit\Domain\SecureCRUDManagement\CRUD\Read;
 | 
			
		||||
use Doctrine\ORM\EntityManagerInterface;
 | 
			
		||||
use PHPUnit\Framework\TestCase;
 | 
			
		||||
use Infinito\Domain\ActionManagement\Read\ReadAction;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\ActionDAOServiceInterface;
 | 
			
		||||
use Infinito\Domain\ActionManagement\Read\ReadActionInterface;
 | 
			
		||||
use Infinito\Exception\NotSecureException;
 | 
			
		||||
use Infinito\Domain\RequestManagement\Action\RequestedActionInterface;
 | 
			
		||||
@@ -23,7 +23,7 @@ class ReadSourceActionTest extends TestCase
 | 
			
		||||
    private $entityManager;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var ActionServiceInterface
 | 
			
		||||
     * @var ActionDAOServiceInterface
 | 
			
		||||
     */
 | 
			
		||||
    private $actionService;
 | 
			
		||||
 | 
			
		||||
@@ -50,7 +50,7 @@ class ReadSourceActionTest extends TestCase
 | 
			
		||||
        $this->entityManager = $this->createMock(EntityManagerInterface::class);
 | 
			
		||||
        $this->requestedAction = $this->createMock(RequestedActionInterface::class);
 | 
			
		||||
        $this->requestedAction->method('getRequestedEntity')->willReturn($this->requestedEntity);
 | 
			
		||||
        $this->actionService = $this->createMock(ActionServiceInterface::class);
 | 
			
		||||
        $this->actionService = $this->createMock(ActionDAOServiceInterface::class);
 | 
			
		||||
        $this->actionService->method('getEntityManager')->willReturn($this->entityManager);
 | 
			
		||||
        $this->actionService->method('getRequestedAction')->willReturn($this->requestedAction);
 | 
			
		||||
        $this->sourceReadAction = new ReadAction($this->actionService);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user