Passed
Push — dev ( b0c48f...a510c3 )
by Nico
14:46
created

SendWelcomeMessage::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Stu\Module\Message\Lib;
6
7
use Override;
0 ignored issues
show
Bug introduced by
The type Override was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
8
use Stu\Module\PlayerSetting\Lib\UserEnum;
0 ignored issues
show
Bug introduced by
The type Stu\Module\PlayerSetting\Lib\UserEnum was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
9
use Stu\Orm\Entity\UserInterface;
10
use Stu\Orm\Repository\FactionRepositoryInterface;
11
12
final class SendWelcomeMessage implements SendWelcomeMessageInterface
13
{
14 1
    public function __construct(
15
        private FactionRepositoryInterface $factionRepository,
16
        private PrivateMessageSenderInterface $privateMessageSender
17 1
    ) {}
18
19
    #[Override]
20
    public function sendWelcomeMessage(UserInterface $user): void
21
    {
22
        $faction = $this->factionRepository->find($user->getFactionId());
23
24
        $welcomeMessage = $faction?->getWelcomeMessage();
25
        if ($welcomeMessage === null || trim($welcomeMessage) === '') {
26
            $welcomeMessage = sprintf(
27
                'Willkommen bei Star Trek Universe!
28
29
Mit diesem Schreiben wird Ihnen offiziell bestätigt, dass Ihre Registrierung erfolgreich abgeschlossen wurde. Sie haben nun Zugang zu den Grenzregionen der bekannten Galaxis erhalten.
30
31
Ihnen wurde die Siedlerlizenz [b]Klasse Standard[/b] mit der Patentnummer [b]#%d[/b] zugeteilt. Diese berechtigt Sie zur Gründung, Verwaltung und Verteidigung von Kolonien unter Ihrem Namen.
32
33
Zur Unterstützung Ihrer ersten Schritte wurde ein umfassendes Tutorial-System in Ihre Benutzeroberfläche integriert. Die Inhalte wurden von erfahrenen Siedlern zusammengestellt und regelmäßig aktualisiert.
34
35
Beachten Sie, dass Ihre Aktivitäten in den Grenzregionen dokumentiert werden. Erfolgreiche Siedlungsprojekte werden entsprechend gewürdigt.
36
37
Bei Fragen, technischen Problemen oder Unterstützungsbedarf stehe Ich Ihnen  jederzeit zur Verfügung. Zögern Sie nicht, Kontakt aufzunehmen.
38
39
Möge Ihre Reise durch die Sterne erfolgreich verlaufen!
40
41
[i]– %s, Abteilung Siedlungsangelegenheiten[/i]',
42
                $user->getId(),
43
                $faction?->getName() ?? 'Die Großmacht'
44
            );
45
        }
46
47
        $senderId = $this->getFactionNpcId($user->getFactionId());
48
49
        $this->privateMessageSender->send(
50
            $senderId,
51
            $user->getId(),
52
            $welcomeMessage,
53
            PrivateMessageFolderTypeEnum::SPECIAL_MAIN
54
        );
55
    }
56
57
    private function getFactionNpcId(int $factionId): int
58
    {
59
        return match ($factionId) {
60
            1 => UserEnum::USER_NPC_FEDERATION,
61
            2 => UserEnum::USER_NPC_ROMULAN,
62
            3 => UserEnum::USER_NPC_KLINGON,
63
            4 => UserEnum::USER_NPC_CARDASSIAN,
64
            5 => UserEnum::USER_NPC_FERG,
65
            default => UserEnum::USER_NPC_FEDERATION,
66
        };
67
    }
68
}
69