CategoryRepository   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 24
c 0
b 0
f 0
dl 0
loc 70
rs 10
wmc 13

8 Methods

Rating   Name   Duplication   Size   Complexity  
A createCategory() 0 2 1
A destroyCategory() 0 3 1
A updateCategory() 0 4 1
A storeCategory() 0 4 1
A editCategory() 0 3 1
A uploadImage() 0 11 3
A showCategory() 0 3 1
A indexCategory() 0 16 4
1
<?php
2
3
namespace Adminetic\Website\Repositories;
4
5
use Adminetic\Website\Contracts\CategoryRepositoryInterface;
6
use Adminetic\Website\Http\Requests\CategoryRequest;
7
use Adminetic\Website\Models\Admin\Category;
8
use Illuminate\Support\Facades\Cache;
9
10
class CategoryRepository implements CategoryRepositoryInterface
11
{
12
    // Category Index
13
    public function indexCategory()
14
    {
15
        $categories = config('adminetic.caching', true)
16
            ? (Cache::has('categories') ? Cache::get('categories') : Cache::rememberForever('categories', function () {
17
                return Category::orderBy('position')->get();
18
            }))
19
            : Category::orderBy('position')->get();
20
21
        // Parent Categories
22
        if (! Cache::has('parent_categories')) {
23
            Cache::rememberForever('parent_categories', function () {
24
                return Category::whoIsParent()->position()->get();
25
            });
26
        }
27
28
        return compact('categories');
29
    }
30
31
    // Category Create
32
    public function createCategory()
33
    {
34
    }
35
36
    // Category Store
37
    public function storeCategory(CategoryRequest $request)
38
    {
39
        $category = Category::create($request->validated());
40
        $this->uploadImage($category);
41
    }
42
43
    // Category Show
44
    public function showCategory(Category $category)
45
    {
46
        return compact('category');
47
    }
48
49
    // Category Edit
50
    public function editCategory(Category $category)
51
    {
52
        return compact('category');
53
    }
54
55
    // Category Update
56
    public function updateCategory(CategoryRequest $request, Category $category)
57
    {
58
        $category->update($request->validated());
59
        $this->uploadImage($category);
60
    }
61
62
    // Category Destroy
63
    public function destroyCategory(Category $category)
64
    {
65
        $category->delete();
66
    }
67
68
    // Upload Image
69
    private function uploadImage(Category $category)
70
    {
71
        if (request()->has('image')) {
72
            $category
73
                ->addFromMediaLibraryRequest(request()->image)
74
                ->toMediaCollection('image');
75
        }
76
        if (request()->has('icon_image')) {
77
            $category
78
                ->addFromMediaLibraryRequest(request()->icon_image)
79
                ->toMediaCollection('icon_image');
80
        }
81
    }
82
}
83