Name::handle()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 13
ccs 7
cts 7
cp 1
rs 9.8333
c 0
b 0
f 0
cc 2
nc 2
nop 2
crap 2
1
<?php
2
3
namespace App\Filters\Actor;
4
5
use App\Filters\Filter;
6
use Doctrine\ORM\QueryBuilder;
7
use Symfony\Component\HttpFoundation\ParameterBag;
8
9
/**
10
 * /api/actors/search?n=Jake.
11
 */
12
class Name implements Filter
13
{
14 5
    public function handle(ParameterBag $params, QueryBuilder $qb): QueryBuilder
15
    {
16 5
        $name = $params->get('n', '');
17
18 5
        if ($this->isValid($name) === false) {
19 3
            return $qb;
20
        }
21
22 2
        $qb->andWhere('(a.originalName LIKE :filter_name) OR (at.name LIKE :filter_name)')
23 2
            ->setParameter('filter_name', "%{$name}%");
24
25 2
        return $qb;
26
    }
27
28 5
    private function isValid(string $name): bool
29
    {
30 5
        return \mb_strlen($name) >= 3;
31
    }
32
}
33