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

ContentImages   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 58
rs 10
c 0
b 0
f 0
wmc 4
lcom 0
cbo 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getImages() 0 14 2
A store() 0 6 1
A saveImage() 0 10 1
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