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

SendWelcomeMessage   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 7.41%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 36
c 1
b 0
f 0
dl 0
loc 54
ccs 2
cts 27
cp 0.0741
rs 10
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getFactionNpcId() 0 9 1
A sendWelcomeMessage() 0 35 3
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