Issues (141)

server/Application/Service/MessageQueuer.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Service;
6
7
use Application\DBAL\Types\MessageTypeType;
8
use Application\Model\Export;
9
use Application\Model\Message;
10
use Application\Model\User;
11
use Doctrine\ORM\EntityManager;
12
use Ecodev\Felix\Service\MessageRenderer;
13
14
/**
15
 * Service to queue new message for pre-defined purposes.
16
 */
17
class MessageQueuer
18
{
19 2
    public function __construct(private readonly EntityManager $entityManager, private readonly MessageRenderer $messageRenderer)
20
    {
21 2
    }
22
23 1
    public function queueExportDone(User $user, Export $export): Message
24
    {
25 1
        $subject = 'Téléchargement prêt';
26 1
        $mailParams = [
27 1
            'export' => $export,
28 1
        ];
29
30 1
        $message = $this->createMessage($user, $user->getEmail(), $subject, MessageTypeType::EXPORT_DONE, $mailParams);
0 ignored issues
show
It seems like $user->getEmail() can also be of type null; however, parameter $email of Application\Service\MessageQueuer::createMessage() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

30
        $message = $this->createMessage($user, /** @scrutinizer ignore-type */ $user->getEmail(), $subject, MessageTypeType::EXPORT_DONE, $mailParams);
Loading history...
31
32 1
        return $message;
33
    }
34
35
    /**
36
     * Create a message by rendering the template.
37
     */
38 1
    private function createMessage(?User $user, string $email, string $subject, string $type, array $mailParams): Message
39
    {
40 1
        $content = $this->messageRenderer->render($user, $email, $subject, $type, $mailParams);
41
42 1
        $message = new Message();
43 1
        $message->setType($type);
44 1
        $message->setRecipient($user);
45 1
        $message->setSubject($subject);
46 1
        $message->setBody($content);
47 1
        $message->setEmail($email);
48 1
        $this->entityManager->persist($message);
49
50 1
        return $message;
51
    }
52
}
53