<?php
namespace App\Controller\Marketplace;
use App\Entity\Workshop;
use App\Form\Marketplace\ContactType;
use App\Service\EmailService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class ContactController extends AbstractController
{
/**
* @var emailService
*/
private $emailService;
/**
* @var EntityManagerInterface
*/
private $entityManagerInterface;
public function __construct(EmailService $emailService, EntityManagerInterface $em)
{
$this->emailService = $emailService;
$this->em = $em;
}
/**
* @Route("/contact/", name="app_contact")
*/
public function index(Request $request): Response
{
$workshop = null;
if (!empty($request->query->get('from'))) {
$workshop = $this->em->getRepository(Workshop::class)->find($request->query->get('from'));
}
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
if (!empty($workshop)) {
$data['workshopName'] = $workshop->getName();
}
$this->emailService->sendMarketplaceMessage($data);
$this->emailService->sendMarketplaceMessageConfirmation($data);
$this->addFlash('success', 'Votre message a bien été envoyé');
}
return $this->render('marketplace/contact/index.html.twig', [
'contactForm' => $form->createView()
]);
}
}