Name   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 2
dl 0
loc 21
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 13 2
A isValid() 0 4 1
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