Broadcaster::deleteShareToMember()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 2
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
	/**
51
	 * generateLocalEvent();
52
	 *
53
	 * generate an event using the ActivityManager.
54
	 *
55
	 * @param SharingFrame $frame
56
	 * @param Member $member
57
	 *
58
	 * @return bool
59
	 */
60
	private function generateLocalEvent(SharingFrame $frame, Member $member) {
61
62
		try {
63
			$event = $this->activityManager->generateEvent();
64
			$event->setApp('mood');
65
			$event->setType('mood');
66
			$event->setAffectedUser($member->getUserId());
67
			$event->setAuthor($frame->getAuthor());
68
			$event->setSubject('mood_item', ['share' => json_encode($frame)]);
69
70
			$this->activityManager->publish($event);
71
72
			return true;
73
		} catch (\Exception $e) {
74
			return false;
75
		}
76
	}
77
78
79
	private function sendMailEvent() {
80
		return false;
81
	}
82
83
	/**
84
	 * {@inheritdoc}
85
	 */
86
	public function deleteShareToMember(SharingFrame $frame, Member $member) {
87
		return true;
88
	}
89
90
91
	/**
92
	 * {@inheritdoc}
93
	 */
94
	public function editShareToMember(SharingFrame $frame, Member $member) {
95
		return true;
96
	}
97
98
99
	/**
100
	 * {@inheritdoc}
101
	 */
102
	public function createShareToCircle(SharingFrame $frame, Circle $circle) {
103
		return true;
104
	}
105
106
	/**
107
	 * {@inheritdoc}
108
	 */
109
	public function deleteShareToCircle(SharingFrame $frame, Circle $circle) {
110
		return true;
111
	}
112
113
	/**
114
	 * {@inheritdoc}
115
	 */
116
	public function editShareToCircle(SharingFrame $frame, Circle $circle) {
117
		return true;
118
	}
119
}