InitializeCartCommandHandler   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A handleInitializeCart() 0 5 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace SyliusCart\Domain\CommandHandler;
6
7
use Broadway\CommandHandling\CommandHandler;
8
use Broadway\Repository\RepositoryInterface;
9
use SyliusCart\Domain\Command\InitializeCart;
10
use SyliusCart\Domain\Factory\CartFactory;
11
12
/**
13
 * @author Arkadiusz Krakowiak <[email protected]>
14
 */
15
final class InitializeCartCommandHandler extends CommandHandler
16
{
17
    /**
18
     * @var RepositoryInterface
19
     */
20
    private $cartRepository;
21
22
    /**
23
     * @var CartFactory
24
     */
25
    private $cartFactory;
26
27
    /**
28
     * @param RepositoryInterface $cartRepository
29
     * @param CartFactory $cartFactory
30
     */
31
    public function __construct(RepositoryInterface $cartRepository, CartFactory $cartFactory)
32
    {
33
        $this->cartRepository = $cartRepository;
34
        $this->cartFactory = $cartFactory;
35
    }
36
37
    /**
38
     * @param InitializeCart $command
39
     */
40
    public function handleInitializeCart(InitializeCart $command): void
41
    {
42
        $cart = $this->cartFactory->initialize($command->getCartId(), $command->getCurrencyCode());
43
        $this->cartRepository->save($cart);
44
    }
45
}
46