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

Broadcaster::createShareToMember()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 11
rs 9.4285
cc 3
eloc 7
nc 3
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
	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
}