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

EventService::singleMemberAdded()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
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
 * @author Vinicius Cubas Brand <[email protected]>
14
 * @author Daniel Tygel <[email protected]>
15
 *
16
 * @copyright 2017
17
 * @license GNU AGPL version 3 or any later version
18
 *
19
 * This program is free software: you can redistribute it and/or modify
20
 * it under the terms of the GNU Affero General Public License as
21
 * published by the Free Software Foundation, either version 3 of the
22
 * License, or (at your option) any later version.
23
 *
24
 * This program is distributed in the hope that it will be useful,
25
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27
 * GNU Affero General Public License for more details.
28
 *
29
 * You should have received a copy of the GNU Affero General Public License
30
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
31
 *
32
 */
33
34
35
namespace OCA\Circles\Service;
36
37
38
use daita\MySmallPhpTools\Model\SimpleDataStore;
39
use daita\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Logger;
40
use OCA\Circles\AppInfo\Application;
41
use OCA\Circles\Events\AddingCircleMemberEvent;
42
use OCA\Circles\Events\CircleCreatedEvent;
43
use OCA\Circles\Events\CircleDestroyedEvent;
44
use OCA\Circles\Events\CircleEditedEvent;
45
use OCA\Circles\Events\CircleGenericEvent;
46
use OCA\Circles\Events\CircleMemberAddedEvent;
47
use OCA\Circles\Events\CircleMemberEditedEvent;
48
use OCA\Circles\Events\CircleMemberRemovedEvent;
49
use OCA\Circles\Events\CircleMemberRequestedEvent;
50
use OCA\Circles\Events\CreatingCircleEvent;
51
use OCA\Circles\Events\DestroyingCircleEvent;
52
use OCA\Circles\Events\EditingCircleEvent;
53
use OCA\Circles\Events\EditingCircleMemberEvent;
54
use OCA\Circles\Events\MembershipsCreatedEvent;
55
use OCA\Circles\Events\MembershipsRemovedEvent;
56
use OCA\Circles\Events\RemovingCircleMemberEvent;
57
use OCA\Circles\Events\RequestingCircleMemberEvent;
58
use OCA\Circles\Model\Federated\FederatedEvent;
59
use OCA\Circles\Model\Membership;
60
use OCA\Circles\Model\Mount;
61
use OCA\Circles\Model\ShareWrapper;
62
use OCP\EventDispatcher\IEventDispatcher;
63
64
65
/**
66
 * Class EventService
67
 *
68
 * @package OCA\Circles\Service
69
 */
70
class EventService {
71
72
73
	use TNC22Logger;
74
75
76
	/** @var IEventDispatcher */
77
	private $eventDispatcher;
78
79
80
	/**
81
	 * EventService constructor.
82
	 *
83
	 * @param IEventDispatcher $eventDispatcher
84
	 */
85
	public function __construct(IEventDispatcher $eventDispatcher) {
86
		$this->eventDispatcher = $eventDispatcher;
87
88
		$this->setup('app', Application::APP_ID);
89
	}
90
91
92
	/**
93
	 * @param FederatedEvent $federatedEvent
94
	 */
95
	public function circleCreating(FederatedEvent $federatedEvent): void {
96
		$event = new CreatingCircleEvent($federatedEvent);
97
		$this->eventDispatcher->dispatchTyped($event);
98
	}
99
100
	/**
101
	 * @param FederatedEvent $federatedEvent
102
	 * @param array $results
103
	 */
104
	public function circleCreated(FederatedEvent $federatedEvent, array $results): void {
105
		$event = new CircleCreatedEvent($federatedEvent, $results);
106
		$this->eventDispatcher->dispatchTyped($event);
107
	}
108
109
110
	/**
111
	 * @param FederatedEvent $federatedEvent
112
	 */
113
	public function circleEditing(FederatedEvent $federatedEvent): void {
114
		$event = new EditingCircleEvent($federatedEvent);
115
		$this->eventDispatcher->dispatchTyped($event);
116
	}
117
118
	/**
119
	 * @param FederatedEvent $federatedEvent
120
	 * @param array $results
121
	 */
122
	public function circleEdited(FederatedEvent $federatedEvent, array $results): void {
123
		$event = new CircleEditedEvent($federatedEvent, $results);
124
		$this->eventDispatcher->dispatchTyped($event);
125
	}
126
127
128
	/**
129
	 * @param FederatedEvent $federatedEvent
130
	 */
131
	public function circleDestroying(FederatedEvent $federatedEvent): void {
132
		$event = new DestroyingCircleEvent($federatedEvent);
133
		$this->eventDispatcher->dispatchTyped($event);
134
	}
135
136
	/**
137
	 * @param FederatedEvent $federatedEvent
138
	 * @param array $results
139
	 */
140
	public function circleDestroyed(FederatedEvent $federatedEvent, array $results): void {
141
		$event = new CircleDestroyedEvent($federatedEvent, $results);
142
		$this->eventDispatcher->dispatchTyped($event);
143
	}
144
145
146
	/**
147
	 * @param FederatedEvent $federatedEvent
148
	 */
149
	public function memberAdding(FederatedEvent $federatedEvent): void {
150
		$event = new AddingCircleMemberEvent($federatedEvent);
151
		$event->setType(CircleGenericEvent::INVITED);
152
		$this->eventDispatcher->dispatchTyped($event);
153
	}
154
155
	/**
156
	 * @param FederatedEvent $federatedEvent
157
	 * @param array $results
158
	 */
159
	public function memberAdded(FederatedEvent $federatedEvent, array $results): void {
160
		$event = new CircleMemberAddedEvent($federatedEvent, $results);
161
		$event->setType(CircleGenericEvent::INVITED);
162
		$this->eventDispatcher->dispatchTyped($event);
163
	}
164
165
166
	/**
167
	 * @param FederatedEvent $federatedEvent
168
	 */
169
	public function memberInviting(FederatedEvent $federatedEvent): void {
170
		$event = new RequestingCircleMemberEvent($federatedEvent);
171
		$event->setType(CircleGenericEvent::INVITED);
172
		$this->eventDispatcher->dispatchTyped($event);
173
	}
174
175
	/**
176
	 * @param FederatedEvent $federatedEvent
177
	 * @param array $results
178
	 */
179
	public function memberInvited(FederatedEvent $federatedEvent, array $results): void {
180
		$event = new CircleMemberRequestedEvent($federatedEvent, $results);
181
		$event->setType(CircleGenericEvent::INVITED);
182
		$this->eventDispatcher->dispatchTyped($event);
183
	}
184
185
186
	/**
187
	 * @param FederatedEvent $federatedEvent
188
	 */
189
	public function memberRequesting(FederatedEvent $federatedEvent): void {
190
		$event = new RequestingCircleMemberEvent($federatedEvent);
191
		$event->setType(CircleGenericEvent::REQUESTED);
192
		$this->eventDispatcher->dispatchTyped($event);
193
	}
194
195
	/**
196
	 * @param FederatedEvent $federatedEvent
197
	 * @param array $results
198
	 */
199
	public function memberRequested(FederatedEvent $federatedEvent, array $results): void {
200
		$event = new CircleMemberRequestedEvent($federatedEvent, $results);
201
		$event->setType(CircleGenericEvent::REQUESTED);
202
		$this->eventDispatcher->dispatchTyped($event);
203
	}
204
205
206
	/**
207
	 * @param FederatedEvent $federatedEvent
208
	 */
209
	public function memberJoining(FederatedEvent $federatedEvent): void {
210
		$event = new AddingCircleMemberEvent($federatedEvent);
211
		$event->setType(CircleGenericEvent::JOINED);
212
		$this->eventDispatcher->dispatchTyped($event);
213
	}
214
215
	/**
216
	 * @param FederatedEvent $federatedEvent
217
	 * @param array $results
218
	 */
219
	public function memberJoined(FederatedEvent $federatedEvent, array $results): void {
220
		$event = new CircleMemberAddedEvent($federatedEvent, $results);
221
		$event->setType(CircleGenericEvent::JOINED);
222
		$this->eventDispatcher->dispatchTyped($event);
223
	}
224
225
226
	/**
227
	 * @param FederatedEvent $federatedEvent
228
	 */
229 View Code Duplication
	public function memberLevelEditing(FederatedEvent $federatedEvent): void {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
230
		$event = new EditingCircleMemberEvent($federatedEvent);
231
		$event->setLevel($federatedEvent->getData()->gInt('level'));
232
		$event->setType(CircleGenericEvent::LEVEL);
233
		$this->eventDispatcher->dispatchTyped($event);
234
	}
235
236
	/**
237
	 * @param FederatedEvent $federatedEvent
238
	 * @param array $results
239
	 */
240 View Code Duplication
	public function memberLevelEdited(FederatedEvent $federatedEvent, array $results): void {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
241
		$event = new CircleMemberEditedEvent($federatedEvent, $results);
242
		$event->setNewLevel($federatedEvent->getData()->gInt('level'));
243
		$event->setType(CircleGenericEvent::LEVEL);
244
		$this->eventDispatcher->dispatchTyped($event);
245
	}
246
247
248
	/**
249
	 * @param FederatedEvent $federatedEvent
250
	 */
251 View Code Duplication
	public function memberNameEditing(FederatedEvent $federatedEvent): void {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
252
		$event = new EditingCircleMemberEvent($federatedEvent);
253
		$event->setDisplayName($federatedEvent->getData()->g('displayName'));
254
		$event->setType(CircleGenericEvent::NAME);
255
		$this->eventDispatcher->dispatchTyped($event);
256
	}
257
258
	/**
259
	 * @param FederatedEvent $federatedEvent
260
	 * @param array $results
261
	 */
262 View Code Duplication
	public function memberNameEdited(FederatedEvent $federatedEvent, array $results): void {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
263
		$event = new CircleMemberEditedEvent($federatedEvent, $results);
264
		$event->setNewDisplayName($federatedEvent->getData()->g('displayName'));
265
		$event->setType(CircleGenericEvent::NAME);
266
		$this->eventDispatcher->dispatchTyped($event);
267
	}
268
269
270
	/**
271
	 * @param FederatedEvent $federatedEvent
272
	 */
273
	public function memberRemoving(FederatedEvent $federatedEvent): void {
274
		$event = new RemovingCircleMemberEvent($federatedEvent);
275
		$event->setType(CircleGenericEvent::REMOVED);
276
		$this->eventDispatcher->dispatchTyped($event);
277
	}
278
279
	/**
280
	 * @param FederatedEvent $federatedEvent
281
	 * @param array $results
282
	 */
283
	public function memberRemoved(FederatedEvent $federatedEvent, array $results): void {
284
		$event = new CircleMemberRemovedEvent($federatedEvent, $results);
285
		$event->setType(CircleGenericEvent::REMOVED);
286
		$this->eventDispatcher->dispatchTyped($event);
287
	}
288
289
290
	/**
291
	 * @param FederatedEvent $federatedEvent
292
	 */
293
	public function memberLeaving(FederatedEvent $federatedEvent): void {
294
		$event = new RemovingCircleMemberEvent($federatedEvent);
295
		$event->setType(CircleGenericEvent::LEFT);
296
		$this->eventDispatcher->dispatchTyped($event);
297
	}
298
299
	/**
300
	 * @param FederatedEvent $federatedEvent
301
	 * @param SimpleDataStore[] $results
302
	 */
303
	public function memberLeft(FederatedEvent $federatedEvent, array $results): void {
304
		$event = new CircleMemberRemovedEvent($federatedEvent, $results);
305
		$event->setType(CircleGenericEvent::LEFT);
306
		$this->eventDispatcher->dispatchTyped($event);
307
	}
308
309
310
	/**
311
	 * @param Membership[] $new
312
	 */
313
	public function membershipsCreated(array $new): void {
314
		$event = new MembershipsCreatedEvent($new);
315
		$this->eventDispatcher->dispatchTyped($event);
316
	}
317
318
319
	/**
320
	 * @param Membership[] $deprecated
321
	 */
322
	public function membershipsRemoved(array $deprecated): void {
323
		$event = new MembershipsRemovedEvent($deprecated);
324
		$this->eventDispatcher->dispatchTyped($event);
325
	}
326
327
328
	/**
329
	 * @param ShareWrapper $wrappedShare
330
	 */
331
	public function localShareCreated(ShareWrapper $wrappedShare): void {
0 ignored issues
show
Unused Code introduced by
The parameter $wrappedShare is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
332
	}
333
334
	/**
335
	 * @param ShareWrapper $wrappedShare
336
	 * @param Mount $mount
337
	 */
338
	public function federatedShareCreated(ShareWrapper $wrappedShare, Mount $mount): void {
0 ignored issues
show
Unused Code introduced by
The parameter $wrappedShare is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $mount is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
339
//		Circles::shareToCircle(
340
//			$circle->getUniqueId(), 'files', '',
341
//			['id' => $share->getId(), 'share' => $this->shareObjectToArray($share)],
342
//			'\OCA\Circles\Circles\FileSharingBroadcaster'
343
//		);
344
	}
345
346
347
	/**
348
	 * @param ShareWrapper $wrappedShare
349
	 */
350
	public function localShareDeleted(ShareWrapper $wrappedShare): void {
0 ignored issues
show
Unused Code introduced by
The parameter $wrappedShare is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
351
	}
352
353
	/**
354
	 * @param ShareWrapper $wrappedShare
355
	 */
356
	public function federatedShareDeleted(ShareWrapper $wrappedShare): void {
0 ignored issues
show
Unused Code introduced by
The parameter $wrappedShare is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
357
	}
358
359
360
361
//	/**
362
//	 * @param FederatedEvent $federatedEvent
363
//	 */
364
//	public function onSharedItemsSyncRequested(FederatedEvent $federatedEvent) {
365
//		$event = new SharedItemsSyncRequestedEvent($federatedEvent);
366
//		$this->eventDispatcher->dispatchTyped($event);
367
//	}
368
369
}
370
371