<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use App\Utils\Utils;
use App\Utils\Paramsutils;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class IndexController extends AbstractController {
/**
* @Route("/", name="app_index")
*/
public function index(ParameterBagInterface $parameters, Request $request): Response {
$paramsutils = new Paramsutils;
$utils = new Utils;
$data = $paramsutils->leerParametros();
$params = $parameters->get("PARAMSCONF");
$service = $data["default_service"];//Cargamos servicio por defecto
$city = null;
if (isset($data["servicios"][$service])) { //Cargamos ciudad por defecto
$city = $data["servicios"][$service]["default_city"];
}
if ($params["level"] == 0) {
// Nivel 0 · Renderizamos una landing estándar de nivel 0
$renderParamsArray = $utils->renderParamsArray($data, $params, $service, $city);
} else if ($params["level"] == 1) {
// Nivel 1 · Redirigimos a /[ciudad] por defecto
$city = reset($data["ciudades"]);
$city = strtolower($city["name"]);
return $this->redirectToRoute("app_nivel1", ["param1" => $city] );
}else if ($params["level"] == 2) {
// Si es Nivel 2, entendemos que el parámetro es el servicio y redirigimos.
$city = strtolower($city);
return $this->redirectToRoute( "app_nivel2", ["service" => $service, "city" => $city]);
}
if ($renderParamsArray != null) {
return $this->render("index/index.html.twig",
$renderParamsArray
);
} else {
return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
}
}
}