Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
namespace App\State;
use ApiPlatform\Metadata\Operation;
use ApiPlatform\State\ProviderInterface;
use App\ApiResource\AverageTaxStats;
use App\Repository\TaxeRepository;
class AverageTaxStatsProvider implements ProviderInterface
{
public function __construct(private TaxeRepository $taxeRepository)
{
}
public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
{
$filters = $context['filters'] ?? [];
$startYear = isset($filters['startYear']) ? (int)$filters['startYear'] : 2018;
$endYear = isset($filters['endYear']) ? (int)$filters['endYear'] : 2022;
$typeCode = $filters['typeCode'] ?? 'TFPNB';
$results = $this->taxeRepository->findAverageTauxByRegion($startYear, $endYear, $typeCode);
$dtos = [];
foreach ($results as $result) {
$dtos[] = new AverageTaxStats(
$result['region'],
$result['annee'],
(float)$result['tauxMoyen']
);
}
return $dtos;
}
}