CreateTemporaryUploadFromDirectS3UploadRequest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 18
c 1
b 0
f 0
dl 0
loc 42
rs 10
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getMediaTableName() 0 8 1
A messages() 0 4 1
A getDatabaseConnection() 0 12 2
A rules() 0 9 1
1
<?php
2
3
namespace Spatie\MediaLibraryPro\Request;
4
5
use Illuminate\Foundation\Http\FormRequest;
6
7
class CreateTemporaryUploadFromDirectS3UploadRequest extends FormRequest
8
{
9
    public function rules(): array
10
    {
11
        return [
12
            'uuid' => "unique:{$this->getDatabaseConnection()}{$this->getMediaTableName()}",
13
            'key' => 'required',
14
            'bucket' => 'required',
15
            'name' => 'required',
16
            'content_type' => 'required',
17
            'size' => 'required',
18
        ];
19
    }
20
21
    protected function getDatabaseConnection(): string
22
    {
23
        $mediaModelClass = config('media-library.media_model');
24
25
        /** @var \Spatie\MediaLibrary\MediaCollections\Models\Media $mediaModel */
26
        $mediaModel = new $mediaModelClass;
27
28
        if ($mediaModel->getConnectionName() === 'default') {
29
            return '';
30
        }
31
32
        return "{$mediaModel->getConnectionName()}.";
33
    }
34
35
    protected function getMediaTableName(): string
36
    {
37
        $mediaModelClass = config('media-library.media_model');
38
39
        /** @var \Spatie\MediaLibrary\MediaCollections\Models\Media $mediaModel */
40
        $mediaModel = new $mediaModelClass;
41
42
        return $mediaModel->getTable();
43
    }
44
45
    public function messages()
46
    {
47
        return [
48
            'uuid.unique' => trans('medialibrary-pro::upload_request.uuid_not_unique'),
49
        ];
50
    }
51
}
52