Completed
Pull Request — master (#552)
by Maxence
01:52
created

OcsController::members()   A

Complexity

Conditions 3
Paths 7

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
cc 3
nc 7
nop 1
1
<?php declare(strict_types=1);
2
3
4
/**
5
 * Circles - Bring cloud-users closer together.
6
 *
7
 * This file is licensed under the Affero General Public License version 3 or
8
 * later. See the COPYING file.
9
 *
10
 * @author Maxence Lange <[email protected]>
11
 * @copyright 2021
12
 * @license GNU AGPL version 3 or any later version
13
 *
14
 * This program is free software: you can redistribute it and/or modify
15
 * it under the terms of the GNU Affero General Public License as
16
 * published by the Free Software Foundation, either version 3 of the
17
 * License, or (at your option) any later version.
18
 *
19
 * This program is distributed in the hope that it will be useful,
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
 * GNU Affero General Public License for more details.
23
 *
24
 * You should have received a copy of the GNU Affero General Public License
25
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
26
 *
27
 */
28
29
30
namespace OCA\Circles\Controller;
31
32
33
use Exception;
34
use OCA\Circles\Model\Circle;
35
use OCA\Circles\Service\CirclesService;
36
use OCA\Circles\Service\MembersService;
37
use OCP\AppFramework\Controller;
38
use OCP\AppFramework\Http;
39
use OCP\AppFramework\Http\DataResponse;
40
use OCP\IRequest;
41
use OCP\IUserSession;
42
43
44
/**
45
 * Class OcsController
46
 *
47
 * @package OCA\Circles\Controller
48
 */
49
class OcsController extends Controller {
50
51
52
	/** @var IUserSession */
53
	private $userSession;
54
55
	/** @var CirclesService */
56
	private $circlesService;
57
58
	/** @var MembersService */
59
	private $membersService;
60
61
62
	/**
63
	 * OcsController constructor.
64
	 *
65
	 * @param $appName
66
	 * @param IRequest $request
67
	 * @param IUserSession $userSession
68
	 * @param CirclesService $circlesService
69
	 * @param MembersService $membersService
70
	 */
71
	public function __construct(
72
		$appName,
73
		IRequest $request,
74
		IUserSession $userSession,
75
		CirclesService $circlesService,
76
		MembersService $membersService
77
	) {
78
		parent::__construct($appName, $request);
79
80
		$this->userSession = $userSession;
81
		$this->circlesService = $circlesService;
82
		$this->membersService = $membersService;
83
	}
84
85
86
	/**
87
	 * @NoAdminRequired
88
	 * @NoCSRFRequired
89
	 *
90
	 * @return DataResponse
91
	 */
92
	public function circles(): DataResponse {
93
		$user = $this->userSession->getUser();
94
		try {
95
			$circles = $this->circlesService->listCircles($user->getUID(), Circle::CIRCLES_ALL);
96
97
			return new DataResponse($circles);
98
		} catch (Exception $e) {
99
			return new DataResponse(['message' => $$e->getMessage()], Http::STATUS_BAD_REQUEST);
100
		}
101
	}
102
103
104
	/**
105
	 * @NoAdminRequired
106
	 * @NoCSRFRequired
107
	 *
108
	 * @param string $circleId
109
	 *
110
	 * @return DataResponse
111
	 */
112
	public function members(string $circleId): DataResponse {
113
		try {
114
			$circle = $this->circlesService->detailsCircle($circleId);
115
			$members = ($circle->getMembers() === null) ? [] : $circle->getMembers();
116
			
117
			return new DataResponse($members);
118
		} catch (Exception $e) {
119
			return new DataResponse(['message' => $$e->getMessage()], Http::STATUS_BAD_REQUEST);
120
		}
121
	}
122
123
}
124
125