Passed
Push — master ( 707cb6...62b4f9 )
by Morris
13:14
created
apps/dav/lib/CalDAV/Activity/Provider/Event.php 1 patch
Indentation   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -35,146 +35,146 @@
 block discarded – undo
35 35
 
36 36
 class Event extends Base {
37 37
 
38
-	const SUBJECT_OBJECT_ADD = 'object_add';
39
-	const SUBJECT_OBJECT_UPDATE = 'object_update';
40
-	const SUBJECT_OBJECT_DELETE = 'object_delete';
41
-
42
-	/** @var IFactory */
43
-	protected $languageFactory;
44
-
45
-	/** @var IL10N */
46
-	protected $l;
47
-
48
-	/** @var IURLGenerator */
49
-	protected $url;
50
-
51
-	/** @var IManager */
52
-	protected $activityManager;
53
-
54
-	/** @var IEventMerger */
55
-	protected $eventMerger;
56
-
57
-	/**
58
-	 * @param IFactory $languageFactory
59
-	 * @param IURLGenerator $url
60
-	 * @param IManager $activityManager
61
-	 * @param IUserManager $userManager
62
-	 * @param IGroupManager $groupManager
63
-	 * @param IEventMerger $eventMerger
64
-	 */
65
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IGroupManager $groupManager, IEventMerger $eventMerger) {
66
-		parent::__construct($userManager, $groupManager);
67
-		$this->languageFactory = $languageFactory;
68
-		$this->url = $url;
69
-		$this->activityManager = $activityManager;
70
-		$this->eventMerger = $eventMerger;
71
-	}
72
-
73
-	/**
74
-	 * @param string $language
75
-	 * @param IEvent $event
76
-	 * @param IEvent|null $previousEvent
77
-	 * @return IEvent
78
-	 * @throws \InvalidArgumentException
79
-	 * @since 11.0.0
80
-	 */
81
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
82
-		if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_event') {
83
-			throw new \InvalidArgumentException();
84
-		}
85
-
86
-		$this->l = $this->languageFactory->get('dav', $language);
87
-
88
-		if ($this->activityManager->getRequirePNG()) {
89
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.png')));
90
-		} else {
91
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar.svg')));
92
-		}
93
-
94
-		if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event') {
95
-			$subject = $this->l->t('{actor} created event {event} in calendar {calendar}');
96
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event_self') {
97
-			$subject = $this->l->t('You created event {event} in calendar {calendar}');
98
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event') {
99
-			$subject = $this->l->t('{actor} deleted event {event} from calendar {calendar}');
100
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event_self') {
101
-			$subject = $this->l->t('You deleted event {event} from calendar {calendar}');
102
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event') {
103
-			$subject = $this->l->t('{actor} updated event {event} in calendar {calendar}');
104
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event_self') {
105
-			$subject = $this->l->t('You updated event {event} in calendar {calendar}');
106
-		} else {
107
-			throw new \InvalidArgumentException();
108
-		}
109
-
110
-		$parsedParameters = $this->getParameters($event);
111
-		$this->setSubjects($event, $subject, $parsedParameters);
112
-
113
-		$event = $this->eventMerger->mergeEvents('event', $event, $previousEvent);
114
-
115
-		return $event;
116
-	}
117
-
118
-	/**
119
-	 * @param IEvent $event
120
-	 * @return array
121
-	 */
122
-	protected function getParameters(IEvent $event) {
123
-		$subject = $event->getSubject();
124
-		$parameters = $event->getSubjectParameters();
125
-
126
-		// Nextcloud 13+
127
-		if (isset($parameters['calendar'])) {
128
-			switch ($subject) {
129
-				case self::SUBJECT_OBJECT_ADD . '_event':
130
-				case self::SUBJECT_OBJECT_DELETE . '_event':
131
-				case self::SUBJECT_OBJECT_UPDATE . '_event':
132
-					return [
133
-						'actor' => $this->generateUserParameter($parameters['actor']),
134
-						'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l),
135
-						'event' => $this->generateClassifiedObjectParameter($parameters['object']),
136
-					];
137
-				case self::SUBJECT_OBJECT_ADD . '_event_self':
138
-				case self::SUBJECT_OBJECT_DELETE . '_event_self':
139
-				case self::SUBJECT_OBJECT_UPDATE . '_event_self':
140
-					return [
141
-						'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l),
142
-						'event' => $this->generateClassifiedObjectParameter($parameters['object']),
143
-					];
144
-			}
145
-		}
146
-
147
-		// Legacy - Do NOT Remove unless necessary
148
-		// Removing this will break parsing of activities that were created on
149
-		// Nextcloud 12, so we should keep this as long as it's acceptable.
150
-		// Otherwise if people upgrade over multiple releases in a short period,
151
-		// they will get the dead entries in their stream.
152
-		switch ($subject) {
153
-			case self::SUBJECT_OBJECT_ADD . '_event':
154
-			case self::SUBJECT_OBJECT_DELETE . '_event':
155
-			case self::SUBJECT_OBJECT_UPDATE . '_event':
156
-				return [
157
-					'actor' => $this->generateUserParameter($parameters[0]),
158
-					'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]),
159
-					'event' => $this->generateObjectParameter($parameters[2]),
160
-				];
161
-			case self::SUBJECT_OBJECT_ADD . '_event_self':
162
-			case self::SUBJECT_OBJECT_DELETE . '_event_self':
163
-			case self::SUBJECT_OBJECT_UPDATE . '_event_self':
164
-				return [
165
-					'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]),
166
-					'event' => $this->generateObjectParameter($parameters[2]),
167
-				];
168
-		}
169
-
170
-		throw new \InvalidArgumentException();
171
-	}
172
-
173
-	private function generateClassifiedObjectParameter(array $eventData) {
174
-		$parameter = $this->generateObjectParameter($eventData);
175
-		if (!empty($eventData['classified'])) {
176
-			$parameter['name'] = $this->l->t('Busy');
177
-		}
178
-		return $parameter;
179
-	}
38
+    const SUBJECT_OBJECT_ADD = 'object_add';
39
+    const SUBJECT_OBJECT_UPDATE = 'object_update';
40
+    const SUBJECT_OBJECT_DELETE = 'object_delete';
41
+
42
+    /** @var IFactory */
43
+    protected $languageFactory;
44
+
45
+    /** @var IL10N */
46
+    protected $l;
47
+
48
+    /** @var IURLGenerator */
49
+    protected $url;
50
+
51
+    /** @var IManager */
52
+    protected $activityManager;
53
+
54
+    /** @var IEventMerger */
55
+    protected $eventMerger;
56
+
57
+    /**
58
+     * @param IFactory $languageFactory
59
+     * @param IURLGenerator $url
60
+     * @param IManager $activityManager
61
+     * @param IUserManager $userManager
62
+     * @param IGroupManager $groupManager
63
+     * @param IEventMerger $eventMerger
64
+     */
65
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IGroupManager $groupManager, IEventMerger $eventMerger) {
66
+        parent::__construct($userManager, $groupManager);
67
+        $this->languageFactory = $languageFactory;
68
+        $this->url = $url;
69
+        $this->activityManager = $activityManager;
70
+        $this->eventMerger = $eventMerger;
71
+    }
72
+
73
+    /**
74
+     * @param string $language
75
+     * @param IEvent $event
76
+     * @param IEvent|null $previousEvent
77
+     * @return IEvent
78
+     * @throws \InvalidArgumentException
79
+     * @since 11.0.0
80
+     */
81
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
82
+        if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_event') {
83
+            throw new \InvalidArgumentException();
84
+        }
85
+
86
+        $this->l = $this->languageFactory->get('dav', $language);
87
+
88
+        if ($this->activityManager->getRequirePNG()) {
89
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.png')));
90
+        } else {
91
+            $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar.svg')));
92
+        }
93
+
94
+        if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event') {
95
+            $subject = $this->l->t('{actor} created event {event} in calendar {calendar}');
96
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event_self') {
97
+            $subject = $this->l->t('You created event {event} in calendar {calendar}');
98
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event') {
99
+            $subject = $this->l->t('{actor} deleted event {event} from calendar {calendar}');
100
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event_self') {
101
+            $subject = $this->l->t('You deleted event {event} from calendar {calendar}');
102
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event') {
103
+            $subject = $this->l->t('{actor} updated event {event} in calendar {calendar}');
104
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event_self') {
105
+            $subject = $this->l->t('You updated event {event} in calendar {calendar}');
106
+        } else {
107
+            throw new \InvalidArgumentException();
108
+        }
109
+
110
+        $parsedParameters = $this->getParameters($event);
111
+        $this->setSubjects($event, $subject, $parsedParameters);
112
+
113
+        $event = $this->eventMerger->mergeEvents('event', $event, $previousEvent);
114
+
115
+        return $event;
116
+    }
117
+
118
+    /**
119
+     * @param IEvent $event
120
+     * @return array
121
+     */
122
+    protected function getParameters(IEvent $event) {
123
+        $subject = $event->getSubject();
124
+        $parameters = $event->getSubjectParameters();
125
+
126
+        // Nextcloud 13+
127
+        if (isset($parameters['calendar'])) {
128
+            switch ($subject) {
129
+                case self::SUBJECT_OBJECT_ADD . '_event':
130
+                case self::SUBJECT_OBJECT_DELETE . '_event':
131
+                case self::SUBJECT_OBJECT_UPDATE . '_event':
132
+                    return [
133
+                        'actor' => $this->generateUserParameter($parameters['actor']),
134
+                        'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l),
135
+                        'event' => $this->generateClassifiedObjectParameter($parameters['object']),
136
+                    ];
137
+                case self::SUBJECT_OBJECT_ADD . '_event_self':
138
+                case self::SUBJECT_OBJECT_DELETE . '_event_self':
139
+                case self::SUBJECT_OBJECT_UPDATE . '_event_self':
140
+                    return [
141
+                        'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l),
142
+                        'event' => $this->generateClassifiedObjectParameter($parameters['object']),
143
+                    ];
144
+            }
145
+        }
146
+
147
+        // Legacy - Do NOT Remove unless necessary
148
+        // Removing this will break parsing of activities that were created on
149
+        // Nextcloud 12, so we should keep this as long as it's acceptable.
150
+        // Otherwise if people upgrade over multiple releases in a short period,
151
+        // they will get the dead entries in their stream.
152
+        switch ($subject) {
153
+            case self::SUBJECT_OBJECT_ADD . '_event':
154
+            case self::SUBJECT_OBJECT_DELETE . '_event':
155
+            case self::SUBJECT_OBJECT_UPDATE . '_event':
156
+                return [
157
+                    'actor' => $this->generateUserParameter($parameters[0]),
158
+                    'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]),
159
+                    'event' => $this->generateObjectParameter($parameters[2]),
160
+                ];
161
+            case self::SUBJECT_OBJECT_ADD . '_event_self':
162
+            case self::SUBJECT_OBJECT_DELETE . '_event_self':
163
+            case self::SUBJECT_OBJECT_UPDATE . '_event_self':
164
+                return [
165
+                    'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]),
166
+                    'event' => $this->generateObjectParameter($parameters[2]),
167
+                ];
168
+        }
169
+
170
+        throw new \InvalidArgumentException();
171
+    }
172
+
173
+    private function generateClassifiedObjectParameter(array $eventData) {
174
+        $parameter = $this->generateObjectParameter($eventData);
175
+        if (!empty($eventData['classified'])) {
176
+            $parameter['name'] = $this->l->t('Busy');
177
+        }
178
+        return $parameter;
179
+    }
180 180
 }
Please login to merge, or discard this patch.