Completed
Push — dev ( 93901c...77b899 )
by Zach
03:48
created

ContentImages::saveImage()   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 1
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 = $this->saveImage($request);
46
47
        $user->addImageToModel($resource, ['path' => $imagePath]);
48
    }
49
50
    /**
51
     * Save an image in storage.
52
     *
53
     * @param \Illuminate\Http\Request $request  Request from user.
54
     *
55
     * @return string Path to image.
56
     */
57
    public function saveImage(Request $request)
58
    {
59
        $imagePath = $request->file('file')->store('public/images');
60
61
        $imageFile = Intervention::make(Storage::get($imagePath))->encode('jpg', 50);
62
63
        Storage::put($imagePath, $imageFile);
64
65
        return $imagePath;
66
    }
67
}
68