Completed
Pull Request — master (#15)
by Wachter
06:00
created

TaskExecutionRepository   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 0
cbo 3
dl 0
loc 25
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A findByStartTime() 0 11 1
A findScheduled() 0 10 1
1
<?php
2
3
namespace Task\TaskBundle\Entity;
4
5
use Doctrine\ORM\EntityRepository;
6
use Task\TaskInterface;
7
use Task\TaskStatus;
8
9
class TaskExecutionRepository extends EntityRepository
10
{
11
    public function findByStartTime(TaskInterface $task, \DateTime $scheduleTime)
12
    {
13
        return $this->createQueryBuilder('e')
14
            ->innerJoin('e.task', 't')
15
            ->where('t.uuid = :uuid')
16
            ->andWhere('e.scheduleTime = :scheduleTime')
17
            ->setParameter('uuid', $task->getUuid())
18
            ->setParameter('scheduleTime', $scheduleTime)
19
            ->getQuery()
20
            ->getResult();
21
    }
22
23
    public function findScheduled(\DateTime $dateTime)
24
    {
25
        return $this->createQueryBuilder('e')
26
            ->innerJoin('e.task', 't')
27
            ->where('e.status = :status AND e.scheduleTime < :dateTime')
28
            ->setParameter('status', TaskStatus::PLANNED)
29
            ->setParameter('dateTime', $dateTime)
30
            ->getQuery()
31
            ->getResult();
32
    }
33
}
34