Lines 100.00% 12 / 12
Methods 100.00% 1 / 1
Classes 100.00% 1 / 1
Name Lines Methods CRAP
 __invoke 100.00% 12 / 12 100.00% 1 / 1 3
27final class Index extends BaseController
28{
29    public function __invoke(
30        AgentStatRepository $agentStatRepository,
31        TimelineEventRepository $timelineEventRepository,
32        MedalChecker $medalChecker,
33        TimelineBuilder $timelineBuilder,
34        DoneBannerRepository $doneBannerRepository,
35    ): Response {
36        $agentStats = $agentStatRepository->findByOwner($this->getUser());
37        $events = $timelineEventRepository->findByOwner($this->getUser());
38        $latest = $agentStats[0] ?? null;
39
40        return $this->render('agent_stat/index.html.twig', [
41            'latest' => $latest,
42            'first' => \array_last($agentStats),
43            'medals' => $latest instanceof AgentStat ? $medalChecker->medalLevels($latest) : [],
44            'coreBadges' => $latest instanceof AgentStat ? $medalChecker->coreBadges($latest->getStats()['months_subscribed'] ?? 0) : [],
45            'customMedals' => $medalChecker->customMedalTiers($this->getUser()->getCustomMedals()),
46            'timelineCounts' => TimelineEntry::counts($timelineBuilder->build($agentStats, $events, $doneBannerRepository->findDatedByOwner($this->getUser()))),
47            'bannergress' => Bannergress::fromStored($this->getUser()->getBannergress()),
48        ]);
49    }
50}