Completed
Pull Request — master (#229)
by
unknown
02:44
created

AddressBookViewFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 34
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A create() 0 20 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Sylius\ShopApiPlugin\Factory;
6
7
use Sylius\Component\Core\Model\AddressInterface;
8
use Sylius\Component\Core\Model\CustomerInterface;
9
use Sylius\ShopApiPlugin\View\AddressBookView;
10
11
final class AddressBookViewFactory implements AddressBookViewFactoryInterface
12
{
13
    /** @var string */
14
    private $addressBookViewClass;
15
16
    public function __construct(string $addressBookViewClass)
17
    {
18
        $this->addressBookViewClass = $addressBookViewClass;
19
    }
20
21
    /**
22
     * {@inheritdoc}
23
     */
24
    public function create(AddressInterface $address, CustomerInterface $customer): AddressBookView
25
    {
26
        /** @var AddressBookView $addressBookView */
27
        $addressBookView = new $this->addressBookViewClass();
28
29
        $addressBookView->id = $address->getId();
30
        $addressBookView->firstName = $address->getFirstName();
31
        $addressBookView->lastName = $address->getLastName();
32
        $addressBookView->countryCode = $address->getCountryCode();
33
        $addressBookView->city = $address->getCity();
34
        $addressBookView->street = $address->getStreet();
35
        $addressBookView->postcode = $address->getPostcode();
36
        $addressBookView->provinceName = $address->getProvinceName();
37
        $addressBookView->provinceCode = $address->getProvinceCode();
38
        $addressBookView->company = $address->getCompany();
39
        $addressBookView->phoneNumber = $address->getPhoneNumber();
40
        $addressBookView->default = $address === $customer->getDefaultAddress();
41
42
        return $addressBookView;
43
    }
44
}
45