EventRepository   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 4
dl 0
loc 26
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getFutureOrPastEvents() 0 16 2
1
<?php
2
/*
3
 * Copyright 2014-2016 Arnaud Bienvenu
4
 *
5
 * This file is part of Kyela.
6
7
 * Kyela is free software: you can redistribute it and/or modify
8
 * it under the terms of the GNU Affero General Public License as published by
9
 * the Free Software Foundation, either version 3 of the License, or
10
 * (at your option) any later version.
11
12
 * Kyela is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU Affero General Public License for more details.
16
17
 * You should have received a copy of the GNU Affero General Public License
18
 * along with Kyela.  If not, see <http://www.gnu.org/licenses/>.
19
 *
20
 */
21
22
namespace Abienvenu\KyelaBundle\Entity;
23
24
use Doctrine\ORM\EntityRepository;
25
26
/**
27
 * EventRepository
28
 *
29
 */
30
class EventRepository extends EntityRepository
31
{
32
    /**
33
     * Get future or past events
34
     *
35
     * @param Poll $poll
36
     * @param Boolean $isFuture
37
     * @return Event[]
38
     */
39
    public function getFutureOrPastEvents(Poll $poll, $isFuture = true)
40
    {
41
        $sign = $isFuture ? ">" : "<=";
42
        $query = $this->getEntityManager()->createQuery(
43
            "SELECT event
44
            FROM KyelaBundle:Event event
45
            WHERE event.poll = :poll
46
                AND (event.date $sign :date OR event.date IS NULL)
47
            ORDER BY event.date DESC, event.time DESC"
48
        );
49
        $query->setParameter('poll', $poll->getId());
50
        $query->setParameter('date', new \DateTime("yesterday"));
51
        // We need to put a reasonable limit here, to avoir memory outage
52
        $query->setMaxResults(30);
53
        return array_reverse($query->getResult());
54
    }
55
}
56