Passed
Push — master ( e98e24...a358d2 )
by Eugene
03:37
created

SaveImageMiddlewareAbstract   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 8
Bugs 0 Features 1
Metric Value
wmc 13
c 8
b 0
f 1
lcom 2
cbo 5
dl 0
loc 59
ccs 0
cts 43
cp 0
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
C copyFileToDefaults() 0 34 7
A afterSave() 0 8 2
A backup() 0 7 2
A destroyEqual() 0 7 2
1
<?php
2
namespace Staticus\Resources\Middlewares\Image;
3
4
use Staticus\Resources\Commands\DeleteImageSizesResourceCommand;
5
use Staticus\Resources\File\ResourceDO;
6
use Staticus\Resources\Image\ResourceImageDOInterface;
7
use Staticus\Resources\Middlewares\SaveResourceMiddlewareAbstract;
8
use Staticus\Resources\ResourceDOInterface;
9
use Staticus\Resources\Image\ResourceImageDO;
10
11
abstract class SaveImageMiddlewareAbstract extends SaveResourceMiddlewareAbstract
12
{
13
    protected function copyFileToDefaults(ResourceDOInterface $resourceDO)
14
    {
15
        /** @var ResourceImageDO $resourceDO */
16
        if (
17
            ResourceDO::DEFAULT_VARIANT !== $resourceDO->getVariant()
18
            && $this->config->get('staticus.magic_defaults.variant')
19
        ) {
20
            $defaultDO = clone $resourceDO;
21
            $defaultDO->setVariant();
22
            $defaultDO->setVersion();
23
            $defaultDO->setWidth();
24
            $defaultDO->setHeight();
25
            $this->copyResource($resourceDO, $defaultDO);
26
        }
27
        if (
28
            ResourceDO::DEFAULT_VERSION !== $resourceDO->getVersion()
29
            && $this->config->get('staticus.magic_defaults.version')
30
        ) {
31
            $defaultDO = clone $resourceDO;
32
            $defaultDO->setVersion();
33
            $defaultDO->setWidth();
34
            $defaultDO->setHeight();
35
            $this->copyResource($resourceDO, $defaultDO);
36
        }
37
        if (
38
            ResourceImageDO::DEFAULT_DIMENSION !== $resourceDO->getDimension()
39
            && $this->config->get('staticus.magic_defaults.dimension')
40
        ) {
41
            $defaultDO = clone $resourceDO;
42
            $defaultDO->setWidth();
43
            $defaultDO->setHeight();
44
            $this->copyResource($resourceDO, $defaultDO);
45
        }
46
    }
47
    protected function afterSave(ResourceDOInterface $resourceDO)
48
    {
49
        /** @var ResourceImageDOInterface $resourceDO */
50
        if (ResourceImageDO::DEFAULT_DIMENSION === $resourceDO->getDimension()) {
51
            $command = new DeleteImageSizesResourceCommand($resourceDO, $this->filesystem);
52
            $command();
53
        }
54
    }
55
    protected function backup(ResourceDOInterface $resourceDO)
56
    {
57
        /** @var ResourceImageDOInterface $resourceDO */
58
        return ResourceImageDO::DEFAULT_DIMENSION === $resourceDO->getDimension()
59
            ? parent::backup($resourceDO)
60
            : $resourceDO;
61
    }
62
    protected function destroyEqual(ResourceDOInterface $resourceDO, ResourceDOInterface $backupResourceVerDO)
63
    {
64
        /** @var ResourceImageDOInterface $resourceDO */
65
        return ResourceImageDO::DEFAULT_DIMENSION === $resourceDO->getDimension()
66
            ? parent::destroyEqual($resourceDO, $backupResourceVerDO)
67
            : $resourceDO;
68
    }
69
}
70