security->isGranted('ROLE_USER')) { throw new AccessDeniedException('Access denied: ROLE_USER required.'); } $project = new Project(); $project->setName($name); $project->setCode($code); if (null !== $description) { $project->setDescription($description); } if (null !== $color) { $project->setColor($color); } if (null !== $clientId) { $client = $this->clientRepository->findById($clientId); if (null === $client) { throw new InvalidArgumentException(sprintf('Client with ID %d not found.', $clientId)); } $project->setClient($client); } if (null !== $workflowId) { $workflow = $this->workflowRepository->findById($workflowId); if (null === $workflow) { throw new InvalidArgumentException(sprintf('Workflow with ID %d not found.', $workflowId)); } $project->setWorkflow($workflow); } // When no workflow is supplied, ProjectDefaultWorkflowListener assigns the default at prePersist. $this->entityManager->persist($project); $this->entityManager->flush(); return json_encode(Serializer::project($project)); } }