Completed
Push — master ( 809444...363a27 )
by Maxence
05:40 queued 02:26
created

MembersController::add()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.2
c 0
b 0
f 0
cc 2
eloc 12
nc 2
nop 2
1
<?php
2
/**
3
 * Circles - Bring cloud-users closer together.
4
 *
5
 * This file is licensed under the Affero General Public License version 3 or
6
 * later. See the COPYING file.
7
 *
8
 * @author Maxence Lange <[email protected]>
9
 * @copyright 2017
10
 * @license GNU AGPL version 3 or any later version
11
 *
12
 * This program is free software: you can redistribute it and/or modify
13
 * it under the terms of the GNU Affero General Public License as
14
 * published by the Free Software Foundation, either version 3 of the
15
 * License, or (at your option) any later version.
16
 *
17
 * This program is distributed in the hope that it will be useful,
18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
 * GNU Affero General Public License for more details.
21
 *
22
 * You should have received a copy of the GNU Affero General Public License
23
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
 *
25
 */
26
27
namespace OCA\Circles\Controller;
28
29
use OCP\AppFramework\Http\DataResponse;
30
31
class MembersController extends BaseController {
32
33
34
	/**
35
	 * @NoAdminRequired
36
	 * @NoSubAdminRequired
37
	 *
38
	 * @param $id
39
	 * @param string $name
40
	 *
41
	 * @return DataResponse
42
	 */
43
	public function add($id, $name) {
44
45
		try {
46
			$data = $this->membersService->addMember($id, $name);
47
		} catch (\Exception $e) {
48
			return $this->fail(
49
				[
50
					'circle_id' => $id,
51
					'name'      => $name,
52
					'error'     => $e->getMessage()
53
				]
54
			);
55
		}
56
57
		return $this->success(
58
			[
59
				'circle_id' => $id,
60
				'name'      => $name,
61
				'members'   => $data
62
			]
63
		);
64
	}
65
66
67
	/**
68
	 * @NoAdminRequired
69
	 * @NoSubAdminRequired
70
	 *
71
	 * @param $id
72
	 * @param $member
73
	 * @param $level
74
	 *
75
	 * @return DataResponse
76
	 * @internal param string $name
77
	 */
78
	public function level($id, $member, $level) {
79
80
		try {
81
			$data = $this->membersService->levelMember($id, $member, $level);
82
		} catch (\Exception $e) {
83
			return
84
				$this->fail(
85
					[
86
						'circle_id' => $id,
87
						'name'      => $member,
88
						'level'     => $level,
89
						'error'     => $e->getMessage()
90
					]
91
				);
92
		}
93
94
		return $this->success(
95
			[
96
				'circle_id' => $id,
97
				'name'      => $member,
98
				'level'     => $level,
99
				'members'   => $data,
100
			]
101
		);
102
	}
103
104
105
	/**
106
	 * @NoAdminRequired
107
	 * @NoSubAdminRequired
108
	 *
109
	 * @param $id
110
	 * @param $member
111
	 *
112
	 * @return DataResponse
113
	 * @internal param string $name
114
	 *
115
	 */
116 View Code Duplication
	public function remove($id, $member) {
117
118
		try {
119
			$data = $this->membersService->removeMember($id, $member);
120
		} catch (\Exception $e) {
121
			return
122
				$this->fail(
123
					[
124
						'circle_id' => $id,
125
						'name'      => $member,
126
						'error'     => $e->getMessage()
127
					]
128
				);
129
		}
130
131
		return $this->success(
132
			[
133
				'circle_id' => $id,
134
				'name'      => $member,
135
				'members'   => $data,
136
			]
137
		);
138
	}
139
140
141
}
142
143