RenameController::getRename()   C
last analyzed

Complexity

Conditions 15
Paths 58

Size

Total Lines 65
Code Lines 40

Duplication

Lines 0
Ratio 0 %

Importance

Changes 5
Bugs 3 Features 0
Metric Value
cc 15
eloc 40
c 5
b 3
f 0
nc 58
nop 0
dl 0
loc 65
rs 5.9166

How to fix   Long Method    Complexity   

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
13
class RenameController extends LfmController
14
{
15
    public function getRename()
16
    {
17
        $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

17
        /** @scrutinizer ignore-call */ 
18
        $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...
18
        $new_name = $this->helper->input('new_name');
19
20
        $file = $this->lfm->setName($old_name);
0 ignored issues
show
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

20
        /** @scrutinizer ignore-call */ 
21
        $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...
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...
21
22
        if (!Storage::disk($this->helper->config('disk'))->exists($file->path('storage'))) {
23
            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

23
            /** @scrutinizer ignore-call */ 
24
            abort(404);
Loading history...
24
        }
25
26
        $old_file = $this->lfm->pretty($old_name);
27
28
        $is_directory = $file->isDirectory();
29
30
        if (empty($new_name)) {
31
            if ($is_directory) {
32
                return response()->json(parent::error('folder-name'), 400);
0 ignored issues
show
Bug introduced by
The function response 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

32
                return /** @scrutinizer ignore-call */ response()->json(parent::error('folder-name'), 400);
Loading history...
33
            } else {
34
                return response()->json(parent::error('file-name'), 400);
35
            }
36
        }
37
38
        if ($is_directory && config('lfm.alphanumeric_directory') && preg_match('/[^\w-]/i', $new_name)) {
0 ignored issues
show
Bug introduced by
The function config 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

38
        if ($is_directory && /** @scrutinizer ignore-call */ config('lfm.alphanumeric_directory') && preg_match('/[^\w-]/i', $new_name)) {
Loading history...
39
            return response()->json(parent::error('folder-alnum'), 400);
40
        } elseif (config('lfm.alphanumeric_filename') && preg_match('/[^.\w-]/i', $new_name)) {
41
            return response()->json(parent::error('file-alnum'), 400);
42
        } elseif ($this->lfm->setName($new_name)->exists()) {
43
            return response()->json(parent::error('rename'), 400);
44
        }
45
46
        if (! $is_directory) {
47
            $extension = $old_file->extension();
48
            if ($extension) {
49
                $new_name = str_replace('.' . $extension, '', $new_name) . '.' . $extension;
50
            }
51
        }
52
53
        $new_path = $this->lfm->setName($new_name)->path('absolute');
54
55
        if ($is_directory) {
56
            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

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