Completed
Push — master ( 113c9d...6bb3ba )
by Lorenzo
02:38
created

RequestHelper::currentRequestHasFiles()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Padosoft\Uploadable\Helpers;
4
5
use Illuminate\Http\Request;
6
7
/**
8
 * Illuminate\Http\Request helper
9
 * @package Padosoft\Uploadable\Helpers
10
 */
11
class RequestHelper
12
{
13
    /**
14
     * Check if the current request has at least one file
15
     * @return bool
16
     */
17
    public static function currentRequestHasFiles() : bool
18
    {
19
        return RequestHelper::requestHasFiles(request());
20
    }
21
22
    /**
23
     * Check if the passed request has at least one file
24
     * @param Request $request
25
     * @return bool
26
     */
27
    public static function requestHasFiles(Request $request) : bool
28
    {
29
        return ($request && $request->allFiles() && count($request->allFiles()) > 0);
30
    }
31
32
    /**
33
     * Check if uploaded File in current request is valid and has a valid Mime Type.
34
     * Return true is all ok, otherwise return false.
35
     * @param string $uploadField
36
     * @param array $arrMimeType
37
     * @return bool
38
     */
39
    public static function isValidCurrentRequestUploadFile(string $uploadField, array $arrMimeType = array()) : bool
40
    {
41
        return RequestHelper::isValidUploadFile($uploadField, $arrMimeType, request());
42
    }
43
44
    /**
45
     * Check if uploaded File is valid and has a valid Mime Type.
46
     * Return true is all ok, otherwise return false.
47
     * @param string $uploadField
48
     * @param array $arrMimeType
49
     * @param Request $request
50
     * @return bool
51
     */
52
    public static function isValidUploadFile(string $uploadField, array $arrMimeType = array(), Request $request) : bool
53
    {
54
        if (!$request) {
55
            return false;
56
        }
57
58
        $uploadedFile = $request->file($uploadField);
59
60
        return UploadedFileHelper::isValidUploadFile($arrMimeType, $uploadedFile);
0 ignored issues
show
Bug introduced by
It seems like $uploadedFile defined by $request->file($uploadField) on line 58 can also be of type array or null; however, Padosoft\Uploadable\Help...er::isValidUploadFile() does only seem to accept object<Illuminate\Http\UploadedFile>, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
61
    }
62
63
    /**
64
     * Return File in Current Request if ok, otherwise return null
65
     * @param string $uploadField
66
     * @param array $arrMimeType
67
     * @return null|UploadedFile
68
     */
69
    public static function getCurrentRequestFileSafe(string $uploadField, array $arrMimeType = array()) : UploadedFile
70
    {
71
        return RequestHelper::getFileSafe($uploadField, $arrMimeType, request());
72
    }
73
74
    /**
75
     * Return File in passed request if ok, otherwise return null
76
     * @param string $uploadField
77
     * @param array $arrMimeType
78
     * @param Request $request
79
     * @return null|UploadedFile
80
     */
81
    public static function getFileSafe(string $uploadField, array $arrMimeType = array(), Request $request) : UploadedFile
82
    {
83
        // Check if uploaded File is valid
84
        if (!RequestHelper::isValidUploadFile($uploadField, $arrMimeType, $request)) {
85
            return null;
86
        }
87
88
        return $request->file($uploadField);
89
    }
90
}
91