Code Duplication    Length = 25-25 lines in 3 locations

src/Presentation/Api/GraphQl/Node/User/Admin/AdminViewModel.php 1 location

@@ 20-44 (lines=25) @@
17
use Acme\App\Core\Component\User\Domain\User\User;
18
use Acme\App\Presentation\Api\GraphQl\Node\User\AbstractUserViewModel;
19
20
final class AdminViewModel extends AbstractUserViewModel
21
{
22
    /**
23
     * @var string
24
     */
25
    private $adminViewModelClass = __CLASS__;
26
27
    public static function constructFromEntity(User $user): self
28
    {
29
        return new static(
30
            $user->getId()->toScalar(),
31
            $user->getFullName(),
32
            $user->getUsername(),
33
            $user->getEmail(),
34
            $user->getMobile(),
35
            $user->getPassword(),
36
            'Admin'
37
        );
38
    }
39
40
    public function getAdminViewModelClass(): string
41
    {
42
        return $this->adminViewModelClass;
43
    }
44
}
45

src/Presentation/Api/GraphQl/Node/User/Editor/EditorViewModel.php 1 location

@@ 20-44 (lines=25) @@
17
use Acme\App\Core\Component\User\Domain\User\User;
18
use Acme\App\Presentation\Api\GraphQl\Node\User\AbstractUserViewModel;
19
20
final class EditorViewModel extends AbstractUserViewModel
21
{
22
    /**
23
     * @var string
24
     */
25
    private $editorViewModelClass = __CLASS__;
26
27
    public static function constructFromEntity(User $user): self
28
    {
29
        return new static(
30
            $user->getId()->toScalar(),
31
            $user->getFullName(),
32
            $user->getUsername(),
33
            $user->getEmail(),
34
            $user->getMobile(),
35
            $user->getPassword(),
36
            'Editor'
37
        );
38
    }
39
40
    public function getEditorViewModelClass(): string
41
    {
42
        return $this->editorViewModelClass;
43
    }
44
}
45

src/Presentation/Api/GraphQl/Node/User/Visitor/VisitorViewModel.php 1 location

@@ 20-44 (lines=25) @@
17
use Acme\App\Core\Component\User\Domain\User\User;
18
use Acme\App\Presentation\Api\GraphQl\Node\User\AbstractUserViewModel;
19
20
final class VisitorViewModel extends AbstractUserViewModel
21
{
22
    /**
23
     * @var string
24
     */
25
    private $visitorViewModelClass = __CLASS__;
26
27
    public static function constructFromEntity(User $user): self
28
    {
29
        return new static(
30
            $user->getId()->toScalar(),
31
            $user->getFullName(),
32
            $user->getUsername(),
33
            $user->getEmail(),
34
            $user->getMobile(),
35
            $user->getPassword(),
36
            'Visitor'
37
        );
38
    }
39
40
    public function getVisitorViewModelClass(): string
41
    {
42
        return $this->visitorViewModelClass;
43
    }
44
}
45