Completed
Push — master ( 663845...79fb76 )
by Igor
18s queued 13s
created

OrderIndexAction::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 10
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Setono\SyliusLagersystemPlugin\Controller\Order;
6
7
use FOS\RestBundle\View\View;
8
use FOS\RestBundle\View\ViewHandlerInterface;
9
use Setono\SyliusLagersystemPlugin\Model\PaginatorDetails;
10
use Setono\SyliusLagersystemPlugin\ViewRepository\Order\OrderViewRepositoryInterface;
11
use Symfony\Component\HttpFoundation\Request;
12
use Symfony\Component\HttpFoundation\Response;
13
14
final class OrderIndexAction
15
{
16
    /** @var ViewHandlerInterface */
17
    private $viewHandler;
18
19
    /** @var OrderViewRepositoryInterface */
20
    private $orderViewRepository;
21
22
    public function __construct(
23
        ViewHandlerInterface $viewHandler,
24
        OrderViewRepositoryInterface $orderViewRepository
25
    ) {
26
        $this->viewHandler = $viewHandler;
27
        $this->orderViewRepository = $orderViewRepository;
28
    }
29
30
    public function __invoke(Request $request): Response
31
    {
32
        $page = $this->orderViewRepository->getAllPaginated(
33
            new PaginatorDetails($request->attributes->get('_route'), $request->query->all())
34
        );
35
36
        return $this->viewHandler->handle(
37
            View::create(
38
                $page,
39
                Response::HTTP_OK
40
            )
41
        );
42
    }
43
}
44