<?php
namespace App\Controller;
use App\Service\ValidationService;
use App\Service\SyncService;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface;
/**
* @Route({"en": "/en", "it": "/it"}, defaults={"_locale" = "it"}, requirements={"_locale" = "it|en"})
*/
class DefaultController extends AbstractController
{
public function redirectHome(Request $request){
return $this->redirectToRoute('homepage');
}
protected $mr;
private $params;
public function __construct(ManagerRegistry $managerRegistry, ParameterBagInterface $params)
{
$this->mr = $managerRegistry;
$this->params = $params;
}
/**
* @Route({"en":"/faqs", "it":"/faq"}, name="faqs")
*/
public function faqs(Request $request)
{
$em = $this->mr->getManager();
$faqCategories = $em->getRepository('App\Entity\FaqCategory')->findAll();
return $this->render('default/faqs.html.twig', array(
'faqCategories' => $faqCategories
));
}
/**
* @Route({"en":"/tutorials", "it":"/tutorial"}, name="tutorials")
*/
public function tutorials(Request $request)
{
$em = $this->mr->getManager();
$tutorialCategories = $em->getRepository('App\Entity\TutorialCategory')->findAll();
return $this->render('default/tutorials.html.twig', array(
'tutorialCategories' => $tutorialCategories
));
}
/**
* @Route({"en":"/help", "it":"/aiuto"}, name="help")
*/
public function help(Request $request)
{
$em = $this->mr->getManager();
$slug = $request->request->get('slug');
$helpTranslation = $em->getRepository("App\Entity\HelpTranslation")->findOneBySlugAndLocale($slug, $request->getLocale());
$response = array("code" => 200, "success" => true, "title" => $helpTranslation->getTitle(), "text" => $helpTranslation->getText());
return new Response(json_encode($response));
}
/**
* @Route({"en":"/cookie", "it":"/cookie"}, name="cookies")
*/
public function cookies(Request $request)
{
return $this->render('default/cookies.html.twig');
}
/**
* @Route({"en":"/cookies/accept", "it":"/cookie/accetta"}, name="cookie_accept")
*/
public function cookieAccept(Request $request)
{
setcookie("cookieconsent_dismissed", "yes", time() + (86400 * 30 * 365), "/");
setcookie("cookie_accepted", "yes", time() + (86400 * 30 * 365), "/");
return $this->redirect($request->server->get('HTTP_REFERER'));
}
/**
* @Route({"en":"/cookies/deny", "it":"/cookie/rifiuta"}, name="cookie_deny")
*/
public function cookieDeny(Request $request)
{
setcookie("cookieconsent_dismissed", "yes", time() + (86400 * 30), "/");
setcookie("cookie_accepted", "no", time() + (86400 * 30), "/");
return $this->redirect($request->server->get('HTTP_REFERER'));
}
/**
* @Route({"en":"/country-update", "it":"/nazioni-aggiorna"}, name="countries_update")
*/
public function countriesUpdate(Request $request)
{
$em = $this->mr->getManager();
$name = $request->request->get('name');
$countries = $em->getRepository("App\Entity\Country")->findByName($name);
$first = true;
$jsonCountries = '[';
foreach($countries as $c){
if($first)
$first = false;
else
$jsonCountries.= ',';
$jsonCountries.= '{"id":"'.$c->getId().'", "name":'.json_encode($c->getName()).'}';
}
$jsonCountries .= ']';
$response = array("code" => 200, "success" => true, "countries" => $jsonCountries);
return new Response(json_encode($response));
}
/**
* @Route({"en":"/nationality-update", "it":"/nazionalità-aggiorna"}, name="nationalities_update")
*/
public function nationalitiesUpdate(Request $request)
{
$em = $this->mr->getManager();
$nationality = $request->request->get('nationality');
$countries = $em->getRepository("App\Entity\Country")->findByNationality($nationality);
$first = true;
$jsonCountries = '[';
foreach($countries as $c){
if($first)
$first = false;
else
$jsonCountries.= ',';
$jsonCountries.= '{"id":"'.$c->getId().'", "nationality":'.json_encode($c->getNationality()).'}';
}
$jsonCountries .= ']';
$response = array("code" => 200, "success" => true, "countries" => $jsonCountries);
return new Response(json_encode($response));
}
}