Passed
Pull Request — master (#10)
by Paweł
03:24
created

LessonNormalizer::normalize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 3
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\Serializer;
6
7
use App\Model\LessonInterface;
8
use App\Serializer\Processor\CoverImageProcessor;
9
use App\Serializer\Processor\LessonCompletedProcessor;
10
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
11
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
12
13
class LessonNormalizer implements NormalizerInterface
14
{
15
    private $normalizer;
16
    private $coverImageProcessor;
17
    private $lessonCompletedProcessor;
18
19
    public function __construct(
20
        ObjectNormalizer $normalizer,
21
        CoverImageProcessor $coverImageProcessor,
22
        LessonCompletedProcessor $lessonCompletedProcessor
23
    ) {
24
        $this->normalizer = $normalizer;
25
        $this->coverImageProcessor = $coverImageProcessor;
26
        $this->lessonCompletedProcessor = $lessonCompletedProcessor;
27
    }
28
29
    public function normalize($object, $format = null, array $context = [])
30
    {
31
        $data = $this->normalizer->normalize($object, $format, $context);
32
        $data = $this->coverImageProcessor->process($object, $data);
33
        $data = $this->lessonCompletedProcessor->process($object, $data);
34
35
        return $data;
36
    }
37
38
    public function supportsNormalization($data, $format = null): bool
39
    {
40
        return $data instanceof LessonInterface;
41
    }
42
}
43