MovieTransformer::process()   B
last analyzed

Complexity

Conditions 6
Paths 13

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 22
ccs 12
cts 12
cp 1
rs 8.9457
c 0
b 0
f 0
cc 6
nc 13
nop 1
crap 6
1
<?php
2
3
namespace App\Movies\Transformer;
4
5
use App\Transformer\Transformer;
6
7
class MovieTransformer implements Transformer
8
{
9
    private $hiddenFields = [];
10
11 36
    public static function list(): self
12
    {
13 36
        $transformer = new self();
14 36
        $transformer->hiddenFields = [
15
            'budget',
16
            //'genres',
17
            'imdbId',
18
            'overview',
19
            'runtime',
20
            'tmdb.id',
21
            'tmdb.voteAverage',
22
            'tmdb.voteCount',
23
        ];
24
25 36
        return $transformer;
26
    }
27
28 36
    public function process(array $data): array
29
    {
30 36
        if (!isset($data['id'])) {
31 36
            return $data;
32
        }
33
34 33
        $data['isWatched'] = (isset($data['userWatchedMovie']) && $data['userWatchedMovie']);
35
36 33
        if (isset($data['tmdb.id'])) {
37 33
            $data['tmdb']['id'] = $data['tmdb.id'];
38 33
            $data['tmdb']['voteAverage'] = $data['tmdb.voteAverage'];
39 33
            $data['tmdb']['voteCount'] = $data['tmdb.voteCount'];
40
        }
41
42 33
        foreach ($this->hiddenFields as $hiddenField) {
43 33
            if (isset($data[$hiddenField])) {
44 33
                unset($data[$hiddenField]);
45
            }
46
        }
47
48 33
        return $data;
49
    }
50
}
51