<?php
/**
* Created by PhpStorm.
* User: anthony
* Date: 29/05/18
* Time: 15:13
*/
namespace App\Controller;
use App\Entity\BlackList;
use App\Ovh\OvhSend;
use App\Service\Utilitaire\AnomalieGestion;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Doctrine\ORM\EntityManagerInterface;
class DesabonnerController extends AbstractController
{
/**
* @Route("/desabonner/{email}",methods={"GET"},name="se.desabonner")
*/
public function PostDesabonerAction($email, EntityManagerInterface $em, AnomalieGestion $anomalieGestion, OvhSend $ovhSend)
{
// On vérifie si le mail existe sur intranet
$urlEmailVerifIntranet = 'extranet.escalconsulting.com/information/contactEmailExisteSurIntranet.php?email="' . $email.'"';
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $urlEmailVerifIntranet);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
curl_close($c);
$contactEmailExisteSurIntranet = json_decode($output);
//On agit seulement s'il existe sur intranet
if($contactEmailExisteSurIntranet === 'oui') {
$blackList = $em->getRepository('App:BlackList')
->findOneBy(['email'=> $email]);
if (!$blackList) {
$blackList = new BlackList();
$blackList->setEmail($email);
$blackList->setDateAjout(new \DateTime('now'));
$blackList->setAutorise(0);
$em->persist($blackList);
$em->flush();
} else {
$anomalieGestion->addAnomalieDejaBlackLister($email);
}
}
$ovhSend->sendDesabonnement($email);
return new RedirectResponse('https://www.escalconsulting.com/desabonnement');
}
}