<?php
namespace App\Controller;
use App\Entity\Subscribe;
use App\Form\SubscribeType;
use App\Repository\SubscribeRepository;
use Doctrine\ORM\EntityManagerInterface;
use App\Service\MailTransport;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Mailer\MailerInterface;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
class SubscribeController extends AbstractController
{
#[Route('/inscription-newsletter', name: 'app_subscribe_newsletter')]
public function subscribe(Request $request, SubscribeRepository $subscribeRepository, EntityManagerInterface $entityManager)
{
$subscriber= new Subscribe();
$formSubscrible = $this->createForm(SubscribeType::class, $subscriber);
$formSubscrible->handleRequest($request);
if ($formSubscrible->isSubmitted() && $formSubscrible->isValid()) {
$existSubscriber = $subscribeRepository->findOneByEmail($subscriber->getEmail());
if ($existSubscriber && $existSubscriber->isIsActive() == true) {
$this->addFlash('danger', "Vous avez déjà souscrit à notre newsletter avec cet email.");
return $this->redirectToRoute('app_home_studio');
} else if ($existSubscriber && $existSubscriber->isIsActive() == false){
$existSubscriber->setIsActive(true);
$existSubscriber->setToken($request->request->get('subscribe')['_token']);
$entityManager->persist($existSubscriber);
$entityManager->flush();
$this->addFlash('success', "Merci d'avoir souscrit à notre newsletter.");
return $this->redirectToRoute('app_home_studio');
} else {
$subscriber->setToken($request->request->get('subscribe')['_token']);
$subscriber->setIsActive(true);
$entityManager->persist($subscriber);
$entityManager->flush();
$this->addFlash('success', "Merci d'avoir souscrit à notre newsletter.");
return $this->redirectToRoute('app_home_studio');
}
}
return $this->render('footer.html.twig', [
'subscribe_form' => $formSubscrible->createView()]);
}
#[Route('/desinscription-newsletter/{email-newsletter}/{token-newsletter}', name: 'app_unsubscribe_newsletter')]
public function unsubscribe(Request $request)
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
return $this->render('contact/index.html.twig', [
'contact_form' => $form->createView()
]);
}
}
}