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
Pull Request — main (#4988)
by Pedro
40:53 queued 25:51
created

UploadersRepository   A

Complexity

Total Complexity 16

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 20
c 1
b 0
f 0
dl 0
loc 72
rs 10
wmc 16

12 Methods

Rating   Name   Duplication   Size   Complexity  
A markAsHandled() 0 4 2
A __construct() 0 3 1
A registerUploader() 0 4 3
A addUploaders() 0 3 1
A getGroupUploaders() 0 3 1
A getRegisteredUploadersFor() 0 3 1
A hasUploadFor() 0 3 1
A isUploadHandled() 0 3 1
A hasUploadersRegisteredFor() 0 3 1
A getUploadFor() 0 3 1
A isUploadRegistered() 0 3 2
A getRegisteredUploadNames() 0 5 1
1
<?php
2
3
namespace Backpack\CRUD\app\Library\CrudPanel\Uploads;
4
5
final class UploadersRepository
6
{
7
    private array $uploaderClasses;
8
9
    private array $handledUploaders = [];
10
11
    private array $registeredUploaders = [];
12
13
    public function __construct()
14
    {
15
        $this->uploaderClasses = config('backpack.crud.uploaders');
16
    }
17
18
    public function markAsHandled(string $objectName)
19
    {
20
        if (! in_array($objectName, $this->handledUploaders)) {
21
            $this->handledUploaders[] = $objectName;
22
        }
23
    }
24
25
    public function isUploadHandled(string $objectName)
26
    {
27
        return in_array($objectName, $this->handledUploaders);
28
    }
29
30
    public function hasUploadFor(string $objectType, $group)
31
    {
32
        return array_key_exists($objectType, $this->uploaderClasses[$group]);
33
    }
34
35
    public function getUploadFor(string $objectType, $group)
36
    {
37
        return $this->uploaderClasses[$group][$objectType];
38
    }
39
40
    public function addUploaders(array $uploaders, $group)
41
    {
42
        $this->uploaderClasses[$group] = array_merge($this->getGroupUploaders($group), $uploaders);
43
    }
44
45
    private function getGroupUploaders($group)
46
    {
47
        return $this->uploaderClasses[$group] ?? [];
48
    }
49
50
    public function registerUploader(string $uploadName, $uploader)
51
    {
52
        if (! array_key_exists($uploadName, $this->registeredUploaders) || ! in_array($uploader, $this->registeredUploaders[$uploadName])) {
53
            $this->registeredUploaders[$uploadName][] = $uploader;
54
        }
55
    }
56
57
    public function hasUploadersRegisteredFor(string $uploadName)
58
    {
59
        return array_key_exists($uploadName, $this->registeredUploaders);
60
    }
61
62
    public function getRegisteredUploadersFor(string $uploadName)
63
    {
64
        return $this->registeredUploaders[$uploadName] ?? [];
65
    }
66
67
    public function isUploadRegistered($uploadName, $upload)
68
    {
69
        return $this->hasUploadersRegisteredFor($uploadName) && in_array($upload->getName(), $this->getRegisteredUploadNames($uploadName));
70
    }
71
72
    public function getRegisteredUploadNames(string $uploadName)
73
    {
74
        return array_map(function ($uploader) {
75
            return $uploader->getName();
76
        }, $this->getRegisteredUploadersFor($uploadName));
77
    }
78
}
79