Completed
Push — feature/VSVGVQ-7 ( c20a91...2c37c2 )
by steven
05:56 queued 03:01
created

CategoryController   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 41
rs 10
c 0
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getAll() 0 14 2
A __construct() 0 6 1
1
<?php declare(strict_types=1);
2
3
namespace VSV\GVQ_API\Question\Controllers;
4
5
use Symfony\Component\HttpFoundation\Response;
6
use VSV\GVQ_API\Question\Repositories\CategoryRepository;
7
use VSV\GVQ_API\Question\Serializers\CategoriesSerializer;
8
9
class CategoryController
10
{
11
    /**
12
     * @var CategoryRepository
13
     */
14
    private $categoryRepository;
15
16
    /**
17
     * @var CategoriesSerializer
18
     */
19
    private $categoriesSerializer;
20
21
    /**
22
     * @param CategoryRepository $categoryRepository
23
     * @param CategoriesSerializer $categoriesSerializer
24
     */
25
    public function __construct(
26
        CategoryRepository $categoryRepository,
27
        CategoriesSerializer $categoriesSerializer
28
    ) {
29
        $this->categoryRepository = $categoryRepository;
30
        $this->categoriesSerializer = $categoriesSerializer;
31
    }
32
33
    /**
34
     * @return Response
35
     */
36
    public function getAll(): Response
37
    {
38
        $categories = $this->categoryRepository->getAll();
39
40
        if ($categories === null) {
41
            $response = new Response('[]');
42
        } else {
43
            $json = $this->categoriesSerializer->serialize($categories, 'json');
44
            $response = new Response($json);
45
        }
46
47
        $response->headers->set('Content-Type', 'application/json');
48
49
        return $response;
50
    }
51
}
52