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

SaveImageMiddlewareAbstract::copyFileToDefaults()   C

Complexity

Conditions 7
Paths 8

Size

Total Lines 34
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 56

Importance

Changes 4
Bugs 0 Features 0
Metric Value
c 4
b 0
f 0
dl 0
loc 34
ccs 0
cts 29
cp 0
rs 6.7272
cc 7
eloc 25
nc 8
nop 1
crap 56
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