Passed
Pull Request — develop (#152)
by Laurent
01:25
created

CompanyModelMapper::getDataFromCompany()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 13
c 1
b 1
f 0
nc 1
nop 1
dl 0
loc 15
rs 9.8333
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the G.L.S.R. Apps package.
7
 *
8
 * (c) Dev-Int Création <[email protected]>.
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Administration\Infrastructure\Company\Mapper;
15
16
use Administration\Application\Company\ReadModel\Company as CompanyReadModel;
17
use Administration\Domain\Company\Model\Company;
18
use Core\Domain\Common\Model\VO\ContactUuid;
19
use Core\Domain\Common\Model\VO\EmailField;
20
use Core\Domain\Common\Model\VO\NameField;
21
use Core\Domain\Common\Model\VO\PhoneField;
22
23
class CompanyModelMapper
24
{
25
    public function getReadModelFromArray(array $data): CompanyReadModel
26
    {
27
        return new CompanyReadModel(
28
            $data['uuid'],
29
            $data['name'],
30
            $data['address'],
31
            $data['zip_code'],
32
            $data['town'],
33
            $data['country'],
34
            $data['phone'],
35
            $data['facsimile'],
36
            $data['email'],
37
            $data['contact_name'],
38
            $data['cellphone'],
39
            $data['slug']
40
        );
41
    }
42
43
    public function getDomainModelFromArray(array $data): Company
44
    {
45
        return Company::create(
46
            ContactUuid::fromString($data['uuid']),
47
            NameField::fromString($data['name']),
48
            $data['address'],
49
            $data['zip_code'],
50
            $data['town'],
51
            $data['country'],
52
            PhoneField::fromString($data['phone']),
53
            PhoneField::fromString($data['facsimile']),
54
            EmailField::fromString($data['email']),
55
            $data['contact_name'],
56
            PhoneField::fromString($data['cellphone'])
57
        );
58
    }
59
60
    public function getDataFromCompany(Company $company): array
61
    {
62
        return [
63
            'uuid' => $company->uuid(),
64
            'name' => $company->name(),
65
            'address' => $company->address(),
66
            'zip_code' => $company->zipCode(),
67
            'town' => $company->town(),
68
            'country' => $company->country(),
69
            'phone' => $company->phone(),
70
            'facsimile' => $company->facsimile(),
71
            'email' => $company->email(),
72
            'contact_name' => $company->contact(),
73
            'cellphone' => $company->cellphone(),
74
            'slug' => $company->slug(),
75
        ];
76
    }
77
}
78