security->isGranted('ROLE_ADMIN')) { throw new AccessDeniedException('Access denied: ROLE_ADMIN required.'); } $prospect = new Prospect(); $prospect->setCompany($company); $prospect->setEmail($email); $prospect->setPhone($phone); $prospect->setWebsite($website); $prospect->setSource($source); $prospect->setNotes($notes); if (null !== $status) { $statusEnum = ProspectStatus::tryFrom($status); if (null === $statusEnum) { throw new InvalidArgumentException(sprintf('Invalid status "%s". Allowed: new, contacted, qualified, won, lost.', $status)); } $prospect->setStatus($statusEnum); } $this->entityManager->persist($prospect); $this->entityManager->flush(); return json_encode(Serializer::prospect($prospect)); } }