Passed
Push — master ( a1ab17...fd21f2 )
by Karel
07:34
created

PageRepository::find()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 1
b 0
f 1
1
<?php
2
3
namespace Chuckbe\Chuckcms\Chuck;
4
5
use Chuckbe\Chuckcms\Models\Page;
6
use Illuminate\Http\Request;
7
use ChuckSite;
0 ignored issues
show
Bug introduced by
The type ChuckSite was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
8
9
class PageRepository
10
{
11
	protected $page;
12
13
    public function __construct(Page $page)
14
    {
15
        $this->page = $page;
16
    }
17
18
    public function find(string $id)
19
    {
20
    	return $this->page->where('id', $id)->first();
21
    }
22
23
    public function create(Request $request)
24
    {
25
    	$page = new Page();
26
27
        $meta = [];
28
        foreach (ChuckSite::getSupportedLocales() as $langKey => $langValue) {
29
            $page->setTranslation('title', $langKey, $request->get('page_title')[$langKey]);
30
            $page->setTranslation('slug', $langKey, $request->get('page_slug')[$langKey]);
31
32
            $meta[$langKey]['title'] = $request->get('meta_title')[$langKey];
33
            $meta[$langKey]['description'] = $request->get('meta_description')[$langKey];
34
            $meta[$langKey]['keywords'] = $request->get('meta_keywords')[$langKey];
35
            $meta[$langKey]['og-url'] = $request->get('page_slug')[$langKey];
36
            $meta[$langKey]['og-type'] = 'website';
37
            $meta[$langKey]['og-title'] = $request->get('meta_title')[$langKey];
38
            $meta[$langKey]['og-description'] = $request->get('meta_description')[$langKey];
39
            $meta[$langKey]['og-site_name'] = $request->get('meta_title')[$langKey];
40
            if ($request->get('meta_robots_index')[$langKey] == '1') {
41
                $index = 'index, ';
42
            } else {
43
                $index = 'noindex, ';
44
            }
45
46
            if ($request->get('meta_robots_follow')[$langKey] == '1') {
47
                $follow = 'follow';
48
            } else {
49
                $follow = 'nofollow';
50
            }
51
52
            $meta[$langKey]['robots'] = $index.$follow;
53
            $meta[$langKey]['googlebots'] = $index.$follow;
54
            $count = count($request->get('meta_key')[$langKey]);
55
            for ($i = 0; $i < $count; $i++) {
56
                $meta[$langKey][$request->get('meta_key')[$langKey][$i]] = $request->get('meta_value')[$langKey][$i];
57
            }
58
        }
59
        $page->meta = $meta;
60
61
        $page->template_id = $request['template_id'];
62
        $page->page = $request['page'];
63
        $page->active = $request['active'];
64
        $page->isHp = $request['isHp'];
65
        $page->order = ($this->page->max('order') ?? 0) + 1;
66
67
        $page->css = $request->get('css');
68
        $page->js = $request->get('js');
69
70
        $page->save();
71
    }
72
73
    public function updatePage($request)
74
    {
75
        $page = $this->find($request['page_id']);
76
77
        $meta = [];
78
        foreach (ChuckSite::getSupportedLocales() as $langKey => $langValue) {
79
            $page->setTranslation('title', $langKey, $request->get('page_title')[$langKey]);
80
            $page->setTranslation('slug', $langKey, $request->get('page_slug')[$langKey]);
81
            $count = count($request->get('meta_key')[$langKey]);
82
            for ($i = 0; $i < $count; $i++) {
83
                $meta[$langKey][$request->get('meta_key')[$langKey][$i]] = $request->get('meta_value')[$langKey][$i];
84
            }
85
        }
86
        $page->meta = $meta;
87
88
        $page->template_id = $request['template_id'];
89
        $page->page = $request['page'];
90
        $page->active = $request['active'];
91
        $page->isHp = $request['isHp'];
92
        $page->roles = count(is_array($request['roles']) ? $request['roles'] : []) > 0 ? implode('|', $request['roles']) : null;
93
94
        $page->css = $request->get('css');
95
        $page->js = $request->get('js');
96
97
        $page->save();
98
    }
99
}
100