Passed
Push — main ( 7b4ffd...fafa8f )
by Roman
02:50
created

MaterialDashboardPro::getRandomBackgroundUrl()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace KielD01\LaravelMaterialDashboardPro;
6
7
use Illuminate\Contracts\Container\BindingResolutionException;
8
use Illuminate\Contracts\Container\CircularDependencyException;
9
use Illuminate\Database\Eloquent\Model;
10
use Illuminate\Http\Request;
11
use KielD01\LaravelMaterialDashboardPro\Helpers\MenuBuilder;
12
13
class MaterialDashboardPro
14
{
15
	private $request;
16
	private $menu = [];
17
	private $pageTitle = 'Page';
18
	private $user = null;
19
20
	public function __construct(Request $request)
21
	{
22
		$this->request = $request;
23
		$this->setMenu();
24
		$this->setUser($this->request->user());
25
	}
26
27
	public function getRandomBackgroundUrl(): string
28
	{
29
		return \sprintf('https://picsum.photos/2880/1920?blur=%d', 2);
30
	}
31
32
	/**
33
	 * @throws CircularDependencyException
34
	 * @throws BindingResolutionException
35
	 */
36
	private function setMenu(): void
37
	{
38
		$this->menu = resolve(MenuBuilder::class)->build();
39
	}
40
41
	/**
42
	 * @param Model|null $user
43
	 *
44
	 * @return $this
45
	 */
46
	private function setUser(?Model $user): self
47
	{
48
		$this->user = $user;
49
50
		return $this;
51
	}
52
53
	public function hasUser(string $guard = null)
54
	{
55
		return $this->request->user($guard) ?? false;
56
	}
57
58
	public function getUser()
59
	{
60
		return $this->user;
61
	}
62
63
	public function getPageTitle(): string
64
	{
65
		return $this->pageTitle;
66
	}
67
68
	public function setPageTitle(string $pageTitle): self
69
	{
70
		$this->pageTitle = $pageTitle;
71
72
		return $this;
73
	}
74
75
	public function getMenu(): array
76
	{
77
		return $this->menu;
78
	}
79
}
80