Commit 6dfd0058 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Limitation de la récupération des journaux

parent 63a5ee88
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ class IndexController extends AbstractActionController
        if (!isset($filtre['date']) OR $filtre['date'] === '') $filtre['date'] = '1M';

        $evenements = $this->getEvenementService()->getEvenementsWithFiltre($filtre);
        $journaux = $this->getJournalService()->getJounaux();
        $journaux = $this->getJournalService()->getJournauxWithFiltre($filtre);

        return new ViewModel([
            'events' => ($evenements)??[],
+23 −0
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

namespace UnicaenEvenement\Service\Journal;

use DateInterval;
use DateTime;
use Doctrine\ORM\ORMException;
use Doctrine\ORM\QueryBuilder;
use UnicaenApp\Exception\RuntimeException;
@@ -93,6 +95,27 @@ class JournalService {
        return $result[0];
    }

    /**
     * @param array $filtres
     * @return Journal[]
     */
    public function getJournauxWithFiltre(array $filtres = []) : array
    {
        $qb = $this->createQueryBuilder();

        if (isset($filtres['date']) AND $filtres['date'] !== '') {
            try {
                $date = (new DateTime())->sub(new DateInterval('P' . $filtres['date']));
            } catch (Exception $e) {
                throw new RuntimeException("Problème de calcul de la date buttoir avec [".$filtres['date']."]",0,$e);
            }
            $qb = $qb->andWhere('journal.date >= :date')->setParameter('date',$date);
        }

        $result = $qb->getQuery()->getResult();
        return $result;
    }

    /**
     * @return bool
     */