Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Push — crud-uploads ( 044930 )
by Pedro
11:38
created

RepeatableRelationship   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 23
c 1
b 0
f 1
dl 0
loc 56
rs 10
wmc 12

4 Methods

Rating   Name   Duplication   Size   Complexity  
A processFileUpload() 0 5 1
A deleteUploadedFile() 0 15 6
A save() 0 18 4
A __construct() 0 4 1
1
<?php
2
3
namespace Backpack\CRUD\app\Library\CrudPanel\Uploads\Uploaders;
4
5
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;
6
use Illuminate\Database\Eloquent\Model;
7
use Illuminate\Support\Facades\Storage;
8
use Illuminate\Support\Str;
9
10
class RepeatableRelationship extends RepeatableUploader
11
{
12
    public function __construct(array $field)
13
    {
14
        parent::__construct($field);
15
        $this->isRelationship = true;
16
    }
17
18
    public function save(Model $entry, $value = null)
19
    {
20
        $values = collect(request()->get($this->name));
21
        $files = collect(request()->file($this->name));
22
23
        $value = $this->mergeValuesRecursive($values, $files);
24
25
        $modelCount = CRUD::get('uploaded_'.$this->name.'_count');
0 ignored issues
show
Bug introduced by
The method get() does not exist on Backpack\CRUD\app\Librar...udPanel\CrudPanelFacade. Since you implemented __callStatic, consider adding a @method annotation. ( Ignorable by Annotation )

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

25
        /** @scrutinizer ignore-call */ 
26
        $modelCount = CRUD::get('uploaded_'.$this->name.'_count');
Loading history...
26
27
        $value = $value->slice($modelCount, 1)->toArray();
28
29
        foreach ($this->repeatableUploads as $upload) {
30
            if (array_key_exists($modelCount, $value) && isset($value[$modelCount][$upload->getName()])) {
31
                $entry->{$upload->getName()} = $upload->save($entry, $value[$modelCount][$upload->getName()]);
32
            }
33
        }
34
35
        return $entry;
36
    }
37
38
    public function processFileUpload(Model $entry)
39
    {
40
        $entry = $this->save($entry);
41
42
        return $entry;
43
    }
44
45
    /**
46
     * The function called in the deleting event to delete the uploaded files upon entry deletion
47
     *
48
     * @param Model $entry
49
     * @return void
50
     */
51
    public function deleteUploadedFile(Model $entry)
52
    {
53
        foreach ($this->repeatableUploads as $upload) {
54
            $values = $entry->{$upload->name};
55
56
            if ($upload->isMultiple) {
57
                if (! isset($entry->getCasts()[$upload->name]) && is_string($values)) {
58
                    $values = json_decode($values, true);
59
                }
60
            } else {
61
                $values = (array) Str::after($values, $upload->path);
62
            }
63
64
            foreach ($values as $value) {
65
                Storage::disk($upload->disk)->delete($upload->path.$value);
66
            }
67
        }
68
    }
69
}
70