Completed
Pull Request — master (#76)
by Maxence
03:22
created

MembersController   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 111
Duplicated Lines 20.72 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 2
dl 23
loc 111
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A add() 0 22 2
B level() 0 25 2
A remove() 23 23 2

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

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