Completed
Pull Request — master (#546)
by Maxence
02:02
created

CircleService::getCircles()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
6
/**
7
 * Circles - Bring cloud-users closer together.
8
 *
9
 * This file is licensed under the Affero General Public License version 3 or
10
 * later. See the COPYING file.
11
 *
12
 * @author Maxence Lange <[email protected]>
13
 * @copyright 2021
14
 * @license GNU AGPL version 3 or any later version
15
 *
16
 * This program is free software: you can redistribute it and/or modify
17
 * it under the terms of the GNU Affero General Public License as
18
 * published by the Free Software Foundation, either version 3 of the
19
 * License, or (at your option) any later version.
20
 *
21
 * This program is distributed in the hope that it will be useful,
22
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
 * GNU Affero General Public License for more details.
25
 *
26
 * You should have received a copy of the GNU Affero General Public License
27
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
 *
29
 */
30
31
32
namespace OCA\Circles\Service;
33
34
35
use daita\MySmallPhpTools\Traits\TArrayTools;
36
use OCA\Circles\Db\CircleRequest;
37
use OCA\Circles\Model\Circle;
38
use OCA\Circles\Model\Member;
39
40
41
/**
42
 * Class CircleService
43
 *
44
 * @package OCA\Circles\Service
45
 */
46
class CircleService {
47
48
49
	use TArrayTools;
50
51
52
	/** @var CircleRequest */
53
	private $circleRequest;
54
55
56
	/** @var Member */
57
	private $viewer = null;
58
59
60
	/**
61
	 * CircleService constructor.
62
	 *
63
	 * @param CircleRequest $circleRequest
64
	 */
65
	public function __construct(CircleRequest $circleRequest) {
66
		$this->circleRequest = $circleRequest;
67
	}
68
69
70
	/**
71
	 * @param string $userId
72
	 */
73
	public function setLocalViewer(string $userId): void {
74
		$this->viewer = new Member($userId, Member::TYPE_USER, '');
75
	}
76
77
	public function setViewer(Member $viewer): void {
78
		$this->viewer = $viewer;
79
	}
80
81
	/**
82
	 * @return Member|null
83
	 */
84
	public function getViewer(): ?Member {
85
		return $this->viewer;
86
	}
87
88
89
	/**
90
	 * @param Member|null $filter
91
	 *
92
	 * @return Circle[]
93
	 */
94
	public function getCircles(?Member $filter = null): array {
95
		return $this->circleRequest->getCircles($this->getViewer(), $filter);
96
	}
97
98
}
99
100