UploadMediaRequest::formatBytes()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 18
rs 9.4286
c 1
b 0
f 0
cc 2
eloc 12
nc 1
nop 2
1
<?php namespace Modules\Media\Http\Requests;
2
3
use Illuminate\Foundation\Http\FormRequest;
4
5
class UploadMediaRequest extends FormRequest
6
{
7
    public function rules()
8
    {
9
        return [
10
            'file' => ['required', 'maxSize'],
11
        ];
12
    }
13
14
    public function authorize()
15
    {
16
        return true;
17
    }
18
19
    public function messages()
20
    {
21
        $bytes = config('asgard.media.config.max-total-size');
22
        $size = $this->formatBytes($bytes);
23
24
        return [
25
            'file.max_size' => trans('media::media.validation.max_size', ['size' => $size]),
26
        ];
27
    }
28
29
    public function formatBytes($bytes, $precision = 2)
30
    {
31
        $units = [
32
            trans('media::media.file-sizes.B'),
33
            trans('media::media.file-sizes.KB'),
34
            trans('media::media.file-sizes.MB'),
35
            trans('media::media.file-sizes.GB'),
36
            trans('media::media.file-sizes.TB'),
37
        ];
38
39
        $bytes = max($bytes, 0);
40
        $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
41
        $pow = min($pow, count($units) - 1);
42
43
        $bytes /= pow(1024, $pow);
44
45
        return round($bytes, $precision) . ' ' . $units[$pow];
46
    }
47
}
48