DeleteProcessor::setProcessParams()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 10
rs 10
cc 2
nc 2
nop 0
1
<?php
2
3
namespace Itstructure\MFU\Processors;
4
5
use Illuminate\Support\Facades\Storage;
6
7
/**
8
 * Class DeleteProcessor
9
 * @package Itstructure\MFU\Processors
10
 * @author Andrey Girnik <[email protected]>
11
 */
12
class DeleteProcessor extends BaseProcessor
13
{
14
    /********************** PROCESS INTERNAL METHODS *********************/
15
    protected function setProcessParams(): void
16
    {
17
        $this->currentDisk = $this->mediafileModel->getDisk();
18
19
        $originalPathinfo = pathinfo($this->mediafileModel->getPath());
20
        $dirnameParent = substr($originalPathinfo['dirname'], 0, -(SaveProcessor::DIR_LENGTH_SECOND + 1));
21
        $childDirectories = Storage::disk($this->currentDisk)->directories($dirnameParent);
22
        $this->processDirectory = count($childDirectories) == 1
23
            ? $dirnameParent
24
            : $originalPathinfo['dirname'];
25
    }
26
27
    protected function process(): bool
28
    {
29
        Storage::disk($this->currentDisk)->deleteDirectory($this->processDirectory);
30
31
        $deleted = $this->mediafileModel->delete();
32
33
        if (empty($deleted)) {
34
            throw new \Exception('Error delete file data from database.');
35
        }
36
37
        return $deleted;
38
    }
39
40
    protected function afterProcess(): void
41
    {
42
        return;
43
    }
44
}
45