Completed
Pull Request — master (#169)
by Mikołaj
03:46
created

ChannelsAssigner   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A assign() 0 11 3
1
<?php
2
3
/*
4
 * This file has been created by developers from BitBag.
5
 * Feel free to contact us once you face any issues or want to start
6
 * another great project.
7
 * You can find more information about us on https://bitbag.shop and write us
8
 * an email on [email protected].
9
 */
10
11
declare(strict_types=1);
12
13
namespace BitBag\SyliusCmsPlugin\Assigner;
14
15
use Sylius\Component\Channel\Model\ChannelsAwareInterface;
16
use Sylius\Component\Channel\Repository\ChannelRepositoryInterface;
17
use Sylius\Component\Core\Model\ChannelInterface;
18
19
final class ChannelsAssigner implements ChannelsAssignerInterface
20
{
21
    /** @var ChannelRepositoryInterface */
22
    private $channelRepository;
23
24
    public function __construct(ChannelRepositoryInterface $channelRepository)
25
    {
26
        $this->channelRepository = $channelRepository;
27
    }
28
29
    public function assign(ChannelsAwareInterface $channelsAware, array $channelsCodes): void
30
    {
31
        foreach ($channelsCodes as $channelCode) {
32
            /** @var ChannelInterface $channel */
33
            $channel = $this->channelRepository->findOneBy(['code' => $channelCode]);
34
35
            if (null !== $channel) {
36
                $channelsAware->addChannel($channel);
37
            }
38
        }
39
    }
40
}
41