Passed
Pull Request — main (#29)
by
unknown
04:27
created

SliderRepository::uploadImage()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 2
eloc 4
c 1
b 1
f 0
nc 2
nop 1
dl 0
loc 6
rs 10
1
<?php
2
3
namespace Adminetic\Website\Repositories;
4
5
use Adminetic\Website\Contracts\SliderRepositoryInterface;
6
use Adminetic\Website\Http\Requests\SliderRequest;
7
use Adminetic\Website\Models\Admin\Slider;
8
use Illuminate\Support\Facades\Cache;
9
10
11
class SliderRepository implements SliderRepositoryInterface
12
{
13
    // Slider Index
14
    public function indexSlider()
15
    {
16
        $sliders = config('adminetic.caching', true)
17
            ? (Cache::has('sliders') ? Cache::get('sliders') : Cache::rememberForever('sliders', function () {
18
                return Slider::latest()->get();
19
            }))
20
            : Slider::latest()->get();
21
        return compact('sliders');
22
    }
23
24
    // Slider Create
25
    public function createSlider()
26
    {
27
        //
28
    }
29
30
    // Slider Store
31
    public function storeSlider(SliderRequest $request)
32
    {
33
        $slider = Slider::create($request->validated());
34
        $this->uploadImage($slider);
35
    }
36
37
    // Slider Show
38
    public function showSlider(Slider $slider)
39
    {
40
        return compact('slider');
41
    }
42
43
    // Slider Edit
44
    public function editSlider(Slider $slider)
45
    {
46
        return compact('slider');
47
    }
48
49
    // Slider Update
50
    public function updateSlider(SliderRequest $request, Slider $slider)
51
    {
52
        $slider->update($request->validated());
53
        $this->uploadImage($slider);
54
    }
55
56
    // Slider Destroy
57
    public function destroySlider(Slider $slider)
58
    {
59
        $slider->delete();
60
    }
61
62
    // Upload Image
63
    private function uploadImage(Slider $slider)
64
    {
65
        if (request()->has('image')) {
66
            $slider
67
                ->addFromMediaLibraryRequest(request()->image)
68
                ->toMediaCollection('image');
69
        }
70
    }
71
}
72