Passed
Push — master ( b6bdd2...5c5a86 )
by Joachim
11:55
created

OrderRepository::findByInterval()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 2
dl 0
loc 11
ccs 0
cts 0
cp 0
crap 2
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Loevgaard\DandomainFoundation\Repository;
4
5
use Loevgaard\DandomainFoundation\Entity\Generated\OrderInterface;
6
use Loevgaard\DandomainFoundation\Entity\Order;
7
use Loevgaard\DandomainFoundation\Repository\Generated\OrderRepositoryTrait;
8
use Symfony\Bridge\Doctrine\RegistryInterface;
9
10
/**
11
 * @method null|OrderInterface find($id)
12
 * @method OrderInterface[]    findBy(array $criteria, array $orderBy = null, int $limit = null, int $offset = null)
13
 * @method null|OrderInterface findOneBy(array $criteria)
14
 * @method OrderInterface[]    findAll()
15
 */
16
class OrderRepository extends AbstractRepository
17
{
18
    use OrderRepositoryTrait;
19
20
    public function __construct(RegistryInterface $registry)
21
    {
22
        parent::__construct($registry, Order::class);
23
    }
24
25
    public function findOneByExternalId(int $externalId): ?OrderInterface
26
    {
27
        /** @var OrderInterface $obj */
28
        $obj = $this->_findOneByExternalId($externalId);
29
30
        return $obj;
31
    }
32
33
    /**
34
     * @param \DateTimeInterface $start
35
     * @param \DateTimeInterface $end
36
     * @return OrderInterface[]
37
     */
38
    public function findByInterval(\DateTimeInterface $start, \DateTimeInterface $end)
39
    {
40
        $qb = $this->createQueryBuilder('o');
41
        $qb->where($qb->expr()->between('o.createdAt', ':start', ':end'))
42
            ->setParameters([
43
                'start' => $start,
44
                'end' => $end
45
            ])
46
        ;
47
48
        return $qb->getQuery()->getResult();
49
    }
50
}
51