Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Lookup
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __invoke
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace App\Controller\Deposits;
6
7use App\Controller\BaseController;
8use App\Dto\DepositDto;
9use App\Repository\DepositRepository;
10use Symfony\Component\HttpFoundation\JsonResponse;
11use Symfony\Component\HttpFoundation\Request;
12use Symfony\Component\Routing\Attribute\Route;
13use Symfony\Component\Security\Http\Attribute\IsGranted;
14
15#[IsGranted('ROLE_ADMIN')]
16#[Route(path: '/deposits/lookup', name: 'deposits_lookup', methods: ['GET'])]
17class Lookup extends BaseController
18{
19    public function __construct(private readonly DepositRepository $depositRepository) {}
20
21    public function __invoke(Request $request): JsonResponse
22    {
23        $id = $request->query->get('id');
24        $deposit = $this->depositRepository->find($id);
25
26        return $this->json($deposit !== null ? DepositDto::fromDeposit($deposit) : null);
27    }
28}