Passed
Push — develop ( f73276...7860e1 )
by BENARD
08:41
created

GetNbNewMessage   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 2
eloc 8
dl 0
loc 21
rs 10
c 1
b 0
f 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 5 1
A __construct() 0 4 1
1
<?php
2
3
namespace ProjetNormandie\MessageBundle\Controller\User;
4
5
use Doctrine\ORM\NonUniqueResultException;
6
use Doctrine\ORM\NoResultException;
7
use ProjetNormandie\MessageBundle\ProjetNormandieMessageEvents;
8
use ProjetNormandie\MessageBundle\Repository\MessageRepository;
9
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
10
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
11
use Symfony\Contracts\EventDispatcher\Event;
12
13
class GetNbNewMessage extends AbstractController
14
{
15
    private MessageRepository $messageRepository;
16
    private EventDispatcherInterface $eventDispatcher;
17
18
    public function __construct(MessageRepository $messageRepository, EventDispatcherInterface $eventDispatcher)
19
    {
20
        $this->messageRepository = $messageRepository;
21
        $this->eventDispatcher = $eventDispatcher;
22
    }
23
24
    /**
25
     * @return int
26
     * @throws NoResultException
27
     * @throws NonUniqueResultException
28
     */
29
    public function __invoke(): int
30
    {
31
        $event = new Event();
32
        $this->eventDispatcher->dispatch($event, ProjetNormandieMessageEvents::GET_NB_NEW_MESSAGE);
33
        return $this->messageRepository->getNbNewMessage($this->getUser());
34
    }
35
}
36