Passed
Pull Request — master (#1065)
by
unknown
03:45
created

RenameController::getRename()   B

Complexity

Conditions 9
Paths 52

Size

Total Lines 59
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 5
Bugs 3 Features 0
Metric Value
cc 9
eloc 35
c 5
b 3
f 0
nc 52
nop 0
dl 0
loc 59
rs 8.0555

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace UniSharp\LaravelFilemanager\Controllers;
4
5
use Illuminate\Support\Facades\Storage;
6
use UniSharp\LaravelFilemanager\Events\FolderIsRenaming;
7
use UniSharp\LaravelFilemanager\Events\FolderWasRenamed;
8
use UniSharp\LaravelFilemanager\Events\FileIsRenaming;
9
use UniSharp\LaravelFilemanager\Events\FileWasRenamed;
10
use UniSharp\LaravelFilemanager\Events\ImageIsRenaming;
11
use UniSharp\LaravelFilemanager\Events\ImageWasRenamed;
12
use Illuminate\Support\Str;
13
14
class RenameController extends LfmController
15
{
16
    public function getRename()
17
    {
18
        $old_name = $this->helper->input('file');
0 ignored issues
show
Bug Best Practice introduced by
The property helper does not exist on UniSharp\LaravelFilemana...ollers\RenameController. Since you implemented __get, consider adding a @property annotation.
Loading history...
Bug introduced by
The method input() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

18
        /** @scrutinizer ignore-call */ 
19
        $old_name = $this->helper->input('file');

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
19
        $new_name = $this->helper->input('new_name');
20
21
        $file = $this->lfm->setName($old_name);
0 ignored issues
show
Bug Best Practice introduced by
The property lfm does not exist on UniSharp\LaravelFilemana...ollers\RenameController. Since you implemented __get, consider adding a @property annotation.
Loading history...
Bug introduced by
The method setName() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

21
        /** @scrutinizer ignore-call */ 
22
        $file = $this->lfm->setName($old_name);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
22
23
        if (!Storage::disk($this->helper->config('disk'))->exists($file->path('storage'))) {
24
            abort(404);
0 ignored issues
show
Bug introduced by
The function abort was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

24
            /** @scrutinizer ignore-call */ 
25
            abort(404);
Loading history...
25
        }
26
27
        $old_file = $this->lfm->pretty($old_name);
28
29
        $is_directory = $file->isDirectory();
30
31
        if (empty($new_name)) {
32
            if ($is_directory) {
33
                return parent::error('folder-name');
34
            } else {
35
                return parent::error('file-name');
36
            }
37
        }
38
39
        $new_name = Str::slug($new_name, '_');
40
41
        if (! $is_directory) {
42
            $extension = $old_file->extension();
43
            if ($extension) {
44
                $new_name = str_replace('.' . $extension, '', $new_name) . '.' . $extension;
45
            }
46
        }
47
48
        $new_path = $this->lfm->setName($new_name)->path('absolute');
49
50
        if ($is_directory) {
51
            event(new FolderIsRenaming($old_file->path(), $new_path));
0 ignored issues
show
Bug introduced by
The function event was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

51
            /** @scrutinizer ignore-call */ 
52
            event(new FolderIsRenaming($old_file->path(), $new_path));
Loading history...
52
        } else {
53
            event(new FileIsRenaming($old_file->path(), $new_path));
54
            event(new ImageIsRenaming($old_file->path(), $new_path));
55
        }
56
57
        $old_path = $old_file->path();
58
59
        if ($old_file->hasThumb()) {
60
            $this->lfm->setName($old_name)->thumb()
61
                ->move($this->lfm->setName($new_name)->thumb());
62
        }
63
64
        $this->lfm->setName($old_name)
65
            ->move($this->lfm->setName($new_name));
66
67
        if ($is_directory) {
68
            event(new FolderWasRenamed($old_path, $new_path));
69
        } else {
70
            event(new FileWasRenamed($old_path, $new_path));
71
            event(new ImageWasRenamed($old_path, $new_path));
72
        }
73
74
        return parent::$success_response;
75
    }
76
}
77