MovieTransformer   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 0
dl 0
loc 44
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A list() 0 16 1
B process() 0 22 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