Completed
Push — master ( 7f76dd...6e67e4 )
by Maxence
01:53
created

Broadcaster   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 98
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 13
c 3
b 0
f 0
lcom 1
cbo 1
dl 0
loc 98
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A init() 0 6 1
A end() 0 2 1
A createShareToMember() 0 11 3
A generateLocalEvent() 0 17 2
A sendMailEvent() 0 3 1
A deleteShareToMember() 0 3 1
A editShareToMember() 0 3 1
A createShareToCircle() 0 3 1
A deleteShareToCircle() 0 3 1
A editShareToCircle() 0 3 1
1
<?php
2
3
namespace OCA\Mood\Circles;
4
5
use OCA\Circles\IBroadcaster;
6
use OCA\Circles\Model\Circle;
7
use OCA\Circles\Model\Member;
8
use OCA\Circles\Model\SharingFrame;
9
use OCA\Mood\AppInfo\Application;
10
use OCP\Activity\IManager;
11
12
class Broadcaster implements IBroadcaster {
13
14
	/** @var IManager */
15
	private $activityManager;
16
17
	/**
18
	 * {@inheritdoc}
19
	 */
20
	public function init() {
21
		$app = new Application();
22
		$c = $app->getContainer();
23
24
		$this->activityManager = $c->query('ActivityManager');
25
	}
26
27
28
	/**
29
	 * {@inheritdoc}
30
	 */
31
	public function end() {
32
	}
33
34
	/**
35
	 * {@inheritdoc}
36
	 */
37
	public function createShareToMember(SharingFrame $frame, Member $member) {
38
		switch ($member->getType()) {
39
			case Member::TYPE_USER:
40
				return $this->generateLocalEvent($frame, $member);
41
42
			case Member::TYPE_MAIL:
43
				return $this->sendMailEvent();
44
		}
45
46
		return false;
47
	}
48
49
50
	private function generateLocalEvent(SharingFrame $frame, Member $member) {
51
52
		try {
53
			$event = $this->activityManager->generateEvent();
54
			$event->setApp('mood');
55
			$event->setType('mood');
56
			$event->setAffectedUser($member->getUserId());
57
			$event->setAuthor($frame->getAuthor());
58
			$event->setSubject('mood_item', ['share' => json_encode($frame)]);
59
60
			$this->activityManager->publish($event);
61
62
			return true;
63
		} catch (\Exception $e) {
64
			return false;
65
		}
66
	}
67
68
69
	private function sendMailEvent() {
70
		return false;
71
	}
72
73
	/**
74
	 * {@inheritdoc}
75
	 */
76
	public function deleteShareToMember(SharingFrame $frame, Member $member) {
77
		return true;
78
	}
79
80
81
	/**
82
	 * {@inheritdoc}
83
	 */
84
	public function editShareToMember(SharingFrame $frame, Member $member) {
85
		return true;
86
	}
87
88
89
	/**
90
	 * {@inheritdoc}
91
	 */
92
	public function createShareToCircle(SharingFrame $frame, Circle $circle) {
93
		return true;
94
	}
95
96
	/**
97
	 * {@inheritdoc}
98
	 */
99
	public function deleteShareToCircle(SharingFrame $frame, Circle $circle) {
100
		return true;
101
	}
102
103
	/**
104
	 * {@inheritdoc}
105
	 */
106
	public function editShareToCircle(SharingFrame $frame, Circle $circle) {
107
		return true;
108
	}
109
}