UpdateMediaGroupAfterImportHandler   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 3
lcom 0
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 handle() 0 23 2
1
<?php
2
3
namespace Backend\Modules\MediaLibraryImporter\Domain\MediaGroupImport\Command;
4
5
use Backend\Modules\MediaLibrary\Domain\MediaGroup\MediaGroup;
6
use Backend\Modules\MediaLibrary\Domain\MediaGroupMediaItem\MediaGroupMediaItem;
7
use Backend\Modules\MediaLibrary\Domain\MediaGroupMediaItem\MediaGroupMediaItemRepository;
8
9
class UpdateMediaGroupAfterImportHandler
10
{
11
    /** @var MediaGroupMediaItemRepository */
12
    protected $mediaGroupMediaItemRepository;
13
14
    public function __construct(MediaGroupMediaItemRepository $mediaGroupMediaItemRepository)
15
    {
16
        $this->mediaGroupMediaItemRepository = $mediaGroupMediaItemRepository;
17
    }
18
19
    public function handle(UpdateMediaGroupAfterImport $updateMediaGroupAfterImport): void
20
    {
21
        /** @var MediaGroup $mediaGroup */
22
        $mediaGroup = $updateMediaGroupAfterImport->getMediaGroupEntity();
23
24
        // Clear all previous connected items
25
        $mediaGroup->getConnectedItems()->clear();
26
27
        /**
28
         * @var int $sequence
29
         * @var string $mediaItemId
30
         */
31
        foreach ($updateMediaGroupAfterImport->getMediaItemsToConnect() as $sequence => $mediaItem) {
32
            // Add connected item
33
            $mediaGroup->addConnectedItem(
34
                MediaGroupMediaItem::create(
35
                    $mediaGroup,
36
                    $mediaItem,
37
                    $sequence
38
                )
39
            );
40
        }
41
    }
42
}
43