Passed
Push — main ( 86a6dd...ec1f24 )
by PRATIK
03:12
created

CounterRepository   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 21
dl 0
loc 64
rs 10
c 0
b 0
f 0
wmc 12

8 Methods

Rating   Name   Duplication   Size   Complexity  
A uploadImage() 0 10 2
A destroyCounter() 0 4 2
A storeCounter() 0 4 1
A showCounter() 0 3 1
A editCounter() 0 3 1
A indexCounter() 0 9 3
A updateCounter() 0 4 1
A createCounter() 0 2 1
1
<?php
2
3
namespace Adminetic\Website\Repositories;
4
5
use Adminetic\Website\Contracts\CounterRepositoryInterface;
6
use Adminetic\Website\Http\Requests\CounterRequest;
7
use Adminetic\Website\Models\Admin\Counter;
8
use Illuminate\Support\Facades\Cache;
9
10
class CounterRepository implements CounterRepositoryInterface
11
{
12
    // Counter Index
13
    public function indexCounter()
14
    {
15
        $counters = config('adminetic.caching', true)
16
            ? (Cache::has('counters') ? Cache::get('counters') : Cache::rememberForever('counters', function () {
17
                return Counter::latest()->get();
18
            }))
19
            : Counter::latest()->get();
20
21
        return compact('counters');
22
    }
23
24
    // Counter Create
25
    public function createCounter()
26
    {
27
        //
28
    }
29
30
    // Counter Store
31
    public function storeCounter(CounterRequest $request)
32
    {
33
        $counter = Counter::create($request->validated());
34
        $this->uploadImage($counter);
35
    }
36
37
    // Counter Show
38
    public function showCounter(Counter $counter)
39
    {
40
        return compact('counter');
41
    }
42
43
    // Counter Edit
44
    public function editCounter(Counter $counter)
45
    {
46
        return compact('counter');
47
    }
48
49
    // Counter Update
50
    public function updateCounter(CounterRequest $request, Counter $counter)
51
    {
52
        $counter->update($request->validated());
53
        $this->uploadImage($counter);
54
    }
55
56
    // Counter Destroy
57
    public function destroyCounter(Counter $counter)
58
    {
59
        $counter->icon ? $counter->hardDelete('icon') : '';
60
        $counter->delete();
61
    }
62
63
    // Upload Image
64
    protected function uploadImage(Counter $counter)
65
    {
66
        if (request()->icon) {
67
            $solo_image = [
68
                'storage' => 'website/counter',
69
                'width' => '256',
70
                'height' => '256',
71
                'quality' => '80',
72
            ];
73
            $counter->uploadImage('icon', $solo_image);
74
        }
75
    }
76
}
77