SprintRepository   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
eloc 25
dl 0
loc 38
ccs 0
cts 27
cp 0
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getCurrentSprint() 0 12 1
A getPreviousSprint() 0 9 1
A getSprintByPeriod() 0 11 1
1
<?php
2
3
namespace Scrumban\Repository;
4
5
use Doctrine\ORM\EntityRepository;
6
7
class SprintRepository extends EntityRepository
8
{
9
    public function getCurrentSprint()
10
    {
11
        $now = new \DateTime();
12
        return $this->createQueryBuilder('s')
13
            ->where('s.beginAt <= :begin_at')
14
            ->andWhere('s.endedAt >= :ended_at')
15
            ->setParameters([
16
                'begin_at' => $now->format('Y-m-d H:i:s'),
17
                'ended_at' => $now->format('Y-m-d H:i:s')
18
            ])
19
            ->getQuery()
20
            ->getOneOrNullResult();
21
    }
22
    
23
    public function getPreviousSprint()
24
    {
25
        return $this->createQueryBuilder('s')
26
            ->where('s.endedAt <= :now')
27
            ->orderBy('s.endedAt', 'DESC')
28
            ->setParameters(['now' => (new \DateTime())->format('Y-m-d H:i:s')])
29
            ->getQuery()
30
            ->setMaxResults(1)
31
            ->getOneOrNullResult();
32
    }
33
    
34
    public function getSprintByPeriod(\DateTime $beginAt, \DateTime $endedAt)
35
    {
36
        return $this->createQueryBuilder('s')
37
            ->where('s.endedAt >= :begin_at')
38
            ->andWhere('s.beginAt <= :ended_at')
39
            ->setParameters([
40
                'begin_at' => $beginAt->format('Y-m-d H:i:s'),
41
                'ended_at' => $endedAt->format('Y-m-d H:i:s')
42
            ])
43
            ->getQuery()
44
            ->getResult();
45
    }
46
}