Completed
Push — dev ( 6a93ce...82e8fe )
by Zach
03:22
created

ContentImages::store()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 3
dl 0
loc 10
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Larafolio\Http\Content;
4
5
use Illuminate\Http\Request;
6
use Larafolio\Models\HasContent;
7
use Illuminate\Support\Facades\Storage;
8
use Intervention\Image\Facades\Image as Intervention;
9
10
class ContentImages
11
{
12
    /**
13
     * Get all images from resource.
14
     *
15
     * @param \Illuminate\Http\Request    $request  Request from user.
16
     * @param Larafolio\Models\HasContent $resource Resource to show images for.
17
     * @param string                      $type     Resource type.
18
     *
19
     * @return \Illuminate\Http\Response
20
     */
21
    public function getImages(Request $request, HasContent $resource, $type)
22
    {
23
        $images = $resource->imagesWithProps();
24
25
        if ($request->ajax()) {
26
            return response()->json($images);
27
        }
28
29
        return view('larafolio::images.manage', [
30
            'type' => $type,
31
            'resource' => $resource,
32
            'images' => $images,
33
        ]);
34
    }
35
36
    /**
37
     * Store an image and attach to resource.
38
     *
39
     * @param \Illuminate\Http\Request    $request  Request from user.
40
     * @param Larafolio\Models\HasContent $resource Resource to show images for.
41
     * @param User                        $user     User model.
42
     */
43
    public function store(Request $request, HasContent $resource, $user)
44
    {
45
        $imagePath = $request->file('file')->store('public/images');
46
47
        $image = Intervention::make(Storage::get($imagePath))->encode('jpg', 50);
48
49
        Storage::put($imagePath, $image);
50
51
        $user->addImageToModel($resource, ['path' => $imagePath]);
52
    }
53
}
54