Completed
Push — master ( 7f96cd...27908d )
by Freek
09:27
created

FileAdderFactory::createFromRequest()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 0 Features 2
Metric Value
c 4
b 0
f 2
dl 0
loc 8
rs 9.4285
cc 2
eloc 4
nc 2
nop 2
1
<?php
2
3
namespace Spatie\MediaLibrary\FileAdder;
4
5
use Illuminate\Database\Eloquent\Model;
6
use Spatie\MediaLibrary\Exceptions\FileCannotBeAdded;
7
8
class FileAdderFactory
9
{
10
    /**
11
     * @param \Illuminate\Database\Eloquent\Model                        $subject
12
     * @param string|\Symfony\Component\HttpFoundation\File\UploadedFile $file
13
     *
14
     * @return \Spatie\MediaLibrary\FileAdder\FileAdder
15
     */
16
    public static function create(Model $subject, $file)
17
    {
18
        return app(FileAdder::class)
19
            ->setSubject($subject)
20
            ->setFile($file);
21
    }
22
23
    /**
24
     * @param \Illuminate\Database\Eloquent\Model $subject
25
     * @param string                              $key
26
     *
27
     * @return \Spatie\MediaLibrary\FileAdder\FileAdder
28
     *
29
     * @throws \Spatie\MediaLibrary\Exceptions\FileCannotBeAdded
30
     */
31
    public static function createFromRequest(Model $subject, string $key)
32
    {
33
        if (!request()->hasFile($key)) {
34
            throw FileCannotBeAdded::requestDoesNotHaveFile($key);
35
        }
36
37
        return static::create($subject, request()->file($key));
38
    }
39
}
40