SaveImageMiddlewareAbstract::afterSave()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 3
Bugs 0 Features 1
Metric Value
dl 0
loc 8
ccs 0
cts 6
cp 0
rs 9.4285
c 3
b 0
f 1
cc 2
eloc 4
nc 2
nop 1
crap 6
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