src/Controller/BugReport/BugReportController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller\BugReport;
  3. use App\Entity\BugReport;
  4. use App\Entity\Child;
  5. use App\Form\BugReportForm;
  6. use App\Form\ChildType;
  7. use App\Repository\ChildRepository;
  8. use App\Utils\HelperUtils;
  9. use Doctrine\DBAL\Exception\ConstraintViolationException;
  10. use Doctrine\ORM\EntityManager;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  19. /**
  20. * @Route("/bug-report-form")
  21. */
  22. class BugReportController extends AbstractController
  23. {
  24. /**
  25. * @Route("/", name="bug_report_form", methods={"GET","POST"})
  26. * @Security("is_granted('ROLE_ADMIN') and is_granted('IS_AUTHENTICATED_FULLY')")
  27. */
  28. public function form(Request $request, EntityManagerInterface $em)
  29. {
  30. $bugReport = new BugReport();
  31. $user = $this->getUser();
  32. $bugReport->setAdmin($user);
  33. $form = $this->createForm(BugReportForm::class, $bugReport, ['required' => false]);
  34. $form->handleRequest($request);
  35. if ($form->isSubmitted()/* && $form->isValid()*/) {
  36. try {
  37. $em->persist($bugReport);
  38. $em->flush();
  39. return $this->json(['success' => true]);
  40. } catch (ConstraintViolationException $e) {
  41. return $this->json(['errors' => 'Visi laukai privalo buti uzpildyti'], Response::HTTP_BAD_REQUEST);
  42. } catch (\Exception $e) {
  43. return $this->json(['errors' => 'Visi laukai privalo buti uzpildyti'], Response::HTTP_BAD_REQUEST);
  44. }
  45. }
  46. $errorMessages = [];
  47. if ( $form->getErrors()->count() !== 0 ) {
  48. foreach ($form->getErrors() as $error) {
  49. $errorMessages[] = $error->getMessage();
  50. }
  51. return $this->json(['errors' => $errorMessages], Response::HTTP_BAD_REQUEST);
  52. }
  53. return $this->renderForm(
  54. 'bug_report/bug_modal.html.twig',
  55. [
  56. 'form' => $form,
  57. 'loggedUser' => $this->getUser()
  58. ]
  59. );
  60. }
  61. }