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

MemberCreate::manage()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
cc 3
nc 2
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 2017
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\GlobalScale;
31
32
33
use OCA\Circles\Exceptions\CircleDoesNotExistException;
34
use OCA\Circles\Exceptions\ConfigNoCircleAvailableException;
35
use OCA\Circles\Exceptions\GlobalScaleDSyncException;
36
use OCA\Circles\Exceptions\GlobalScaleEventException;
37
use OCA\Circles\Exceptions\MemberAlreadyExistsException;
38
use OCA\Circles\Exceptions\MemberIsNotModeratorException;
39
use OCA\Circles\Model\GlobalScale\GSEvent;
40
41
42
/**
43
 * Class MemberCreate
44
 *
45
 * @package OCA\Circles\GlobalScale
46
 */
47
class MemberCreate extends AGlobalScaleEvent {
48
49
50
	/**
51
	 * @param GSEvent $event
52
	 * @param bool $localCheck
53
	 * @param bool $mustBeChecked
54
	 *
55
	 * @throws CircleDoesNotExistException
56
	 * @throws ConfigNoCircleAvailableException
57
	 * @throws MemberIsNotModeratorException
58
	 * @throws GlobalScaleDSyncException
59
	 * @throws GlobalScaleEventException
60
	 */
61
	public function verify(GSEvent $event, bool $localCheck = false, bool $mustBeChecked = false): void {
62
		parent::verify($event, $localCheck, true);
63
64
		$circle = $event->getCircle();
65
//		$eventCircle = $event->getCircle();
66
//		$viewer = $eventCircle->getViewer();
67
//		$eventViewer = $viewer->getUserId();
68
//		$eventInstance = $viewer->getInstance();
69
//
70
//		$circle =
71
//			$this->circlesRequest->getCircle($eventCircle->getUniqueId(), $eventViewer, $eventInstance);
72
		$circle->getHigherViewer()
73
			   ->hasToBeModerator();
74
	}
75
76
77
	/**
78
	 * @param GSEvent $event
79
	 *
80
	 * @throws MemberAlreadyExistsException
81
	 */
82
	public function manage(GSEvent $event): void {
83
		$this->miscService->log('new event; ' . json_encode($event));
84
		if (!$event->hasCircle() || !$event->hasMember()) {
85
			return;
86
		}
87
88
		$member = $event->getMember();
89
		$this->miscService->log('new event; ' . json_encode($member));
90
91
//		if ($member->getInstance() === '') {
92
//			$member->setInstance($event->getSource());
93
//		}
94
95
		$this->membersRequest->createMember($member);
96
		$this->eventsService->onMemberNew($event->getCircle(), $member);
97
	}
98
99
100
	/**
101
	 * @param GSEvent[] $events
102
	 */
103
	public function result(array $events): void {
104
	}
105
106
}
107
108