Passed
Push — master ( b37186...7c51ba )
by Peter
04:28
created

UserLanguage::createEntity()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Admin\Service\Execute;
6
7
use AbterPhp\Admin\Domain\Entities\UserLanguage as Entity;
8
use AbterPhp\Admin\Orm\UserLanguageRepo as GridRepo;
9
use AbterPhp\Admin\Validation\Factory\UserLanguage as ValidatorFactory;
10
use AbterPhp\Framework\Domain\Entities\IStringerEntity;
11
use AbterPhp\Framework\Http\Service\Execute\RepoServiceAbstract;
12
use Cocur\Slugify\Slugify;
13
use Opulence\Events\Dispatchers\IEventDispatcher;
14
use Opulence\Http\Requests\UploadedFile;
15
use Opulence\Orm\IUnitOfWork;
16
17
class UserLanguage extends RepoServiceAbstract
18
{
19
    /** @var Slugify */
20
    protected $slugify;
21
22
    /**
23
     * UserLanguage constructor.
24
     *
25
     * @param GridRepo         $repo
26
     * @param ValidatorFactory $validatorFactory
27
     * @param IUnitOfWork      $unitOfWork
28
     * @param IEventDispatcher $eventDispatcher
29
     * @param Slugify          $slugify
30
     */
31
    public function __construct(
32
        GridRepo $repo,
33
        ValidatorFactory $validatorFactory,
34
        IUnitOfWork $unitOfWork,
35
        IEventDispatcher $eventDispatcher,
36
        Slugify $slugify
37
    ) {
38
        parent::__construct($repo, $validatorFactory, $unitOfWork, $eventDispatcher);
39
40
        $this->slugify = $slugify;
41
    }
42
43
    /**
44
     * @param string $entityId
45
     *
46
     * @return Entity
47
     */
48
    public function createEntity(string $entityId): IStringerEntity
49
    {
50
        return new Entity($entityId, '', '');
51
    }
52
53
    /**
54
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
55
     *
56
     * @param Entity         $entity
57
     * @param array          $postData
58
     * @param UploadedFile[] $fileData
59
     *
60
     * @return Entity
61
     */
62
    protected function fillEntity(IStringerEntity $entity, array $postData, array $fileData): IStringerEntity
63
    {
64
        if (!($entity instanceof Entity)) {
65
            return $entity;
66
        }
67
68
        $name       = isset($postData['name']) ? (string)$postData['name'] : '';
69
        $identifier = isset($postData['identifier']) ? (string)$postData['identifier'] : $name;
70
        $identifier = $this->slugify->slugify($identifier);
71
72
        $entity
73
            ->setName($name)
74
            ->setIdentifier($identifier);
75
76
        return $entity;
77
    }
78
}
79