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

RemoveAddressHandler   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A handle() 0 7 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Sylius\ShopApiPlugin\Handler;
6
7
use Sylius\Component\Core\Model\AddressInterface;
8
use Sylius\Component\Core\Repository\AddressRepositoryInterface;
9
use Sylius\Component\Core\Repository\OrderRepositoryInterface;
10
use Sylius\ShopApiPlugin\Command\RemoveAddress;
11
12
final class RemoveAddressHandler
13
{
14
    /**
15
     * @var AddressRepositoryInterface
16
     */
17
    private $addressRepository;
18
19
    /**
20
     * @var OrderRepositoryInterface
21
     */
22
    private $orderRepository;
23
24
    /**
25
     * @param AddressRepositoryInterface $addressRepository
26
     * @param OrderRepositoryInterface $orderRepository
27
     */
28
    public function __construct(AddressRepositoryInterface $addressRepository, OrderRepositoryInterface $orderRepository)
29
    {
30
        $this->addressRepository = $addressRepository;
31
        $this->orderRepository = $orderRepository;
32
    }
33
34
    public function handle(RemoveAddress $removeAddress): void
35
    {
36
        /** @var AddressInterface $address */
37
        $address = $this->addressRepository->findOneBy(['id' => $removeAddress->id()]);
38
39
        $this->addressRepository->remove($address);
40
    }
41
}
42