<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class InfoController extends AbstractController
{
/**
* @Route("/info", name="info")
*/
public function index(): Response
{
return $this->render('info/index.html.twig', [
'controller_name' => 'InfoController',
]);
}
/**
* @Route("/users", name="info_users", methods={"GET"})
*/
public function users(): string
{
$em = $this->getDoctrine()->getManager();
//$userRepository = $em->getRepository(\App\Entity\User::class);
$userRepository = $em->getRepository(\App\Entity\User::class);
$data = $userRepository->createQueryBuilder('u')
->select('count(u.id)')
->getQuery()
->getSingleScalarResult();
return $data;
}
/**
* @Route("/cars", name="info_cars", methods={"GET"})
*/
public function cars(): string
{
$em = $this->getDoctrine()->getManager();
//$userRepository = $em->getRepository(\App\Entity\Car::class);
$userRepository = $em->getRepository(\App\Entity\Car::class);
$data = $userRepository->createQueryBuilder('c')
->select('count(c.id)')
->where('c.status not in (\'sold\', \'swapped\')')
->getQuery()
->getSingleScalarResult();
return $data;
}
/**
* @Route("/brands", name="info_cars", methods={"GET"})
*/
public function brands(): string
{
$em = $this->getDoctrine()->getManager();
//$userRepository = $em->getRepository(\App\Entity\Brand::class);
$userRepository = $em->getRepository(\App\Entity\Brand::class);
$data = $userRepository->createQueryBuilder('b')
->select('count(b.id)')
->getQuery()
->getSingleScalarResult();
return $data;
}
/**
* @Route("/clients", name="info_clients", methods={"GET"})
*/
public function clients(): string
{
$em = $this->getDoctrine()->getManager();
//$userRepository = $em->getRepository(\App\Entity\Client::class);
$userRepository = $em->getRepository(\App\Entity\Client::class);
if ($this->getUser()->getRoles()[0] == 'ROLE_ADMIN') {
$data = $userRepository->createQueryBuilder('c')
->select('count(c.id)')
->getQuery()
->getSingleScalarResult();
} else {
$data = $userRepository->createQueryBuilder('c')
->select('count(c.id)')
->where('c.user = :user')
->setParameter(':user', $this->getUser()->getId())
->getQuery()
->getSingleScalarResult();
}
return $data;
}
/**
* @Route("/notifications", name="info_notifications", methods={"GET"})
*/
public function notifications(): string
{
$userId = $this->getUser()->getId();
$em = $this->getDoctrine()->getManager();
$userRepository = $em->getRepository(\App\Entity\Client::class);
if ($this->getUser()->getRoles()[0] == 'ROLE_ADMIN') {
$data = $userRepository->createQueryBuilder('c')
->select('count(c.id)')
->getQuery()
->getSingleScalarResult();
} else {
$data = $userRepository->createQueryBuilder('c')
->select('count(c.id)')
->where('c.user = :user')
->setParameter(':user', $this->getUser()->getId())
->getQuery()
->getSingleScalarResult();
}
return $data;
}
}