Completed
Push — master ( ed1dd0...0d6f9c )
by Roeland
9s
created

Provider::parse()   B

Complexity

Conditions 5
Paths 5

Size

Total Lines 21
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
dl 0
loc 21
ccs 0
cts 17
cp 0
rs 8.7624
c 0
b 0
f 0
cc 5
eloc 13
nc 5
nop 3
crap 30
1
<?php
2
/**
3
 * @copyright Copyright (c) 2018 Roeland Jago Douma <[email protected]>
4
 *
5
 * @author Roeland Jago Douma <[email protected]>
6
 *
7
 * @license GNU AGPL version 3 or any later version
8
 *
9
 * This program is free software: you can redistribute it and/or modify
10
 * it under the terms of the GNU Affero General Public License as
11
 * published by the Free Software Foundation, either version 3 of the
12
 * License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU Affero General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU Affero General Public License
20
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 *
22
 */
23
namespace OCA\Files_Antivirus\Activity;
24
25
use OCA\Files_Antivirus\AppInfo\Application;
26
use OCP\Activity\IEvent;
27
use OCP\Activity\IProvider;
28
use OCP\L10N\IFactory;
29
30
class Provider implements IProvider {
31
32
	const TYPE_VIRUS_DETECTED = 'virus_detected';
33
	const SUBJECT_VIRUS_DETECTED = 'virus_detected';
34
	const MESSAGE_FILE_DELETED = 'file_deleted';
35
36
	/** @var IFactory */
37
	private $languageFactory;
38
39
	public function __construct(IFactory $languageFactory) {
40
		$this->languageFactory = $languageFactory;
41
	}
42
43
	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
44
		if ($event->getApp() !== Application::APP_NAME || $event->getType() !== self::TYPE_VIRUS_DETECTED) {
45
			throw new \InvalidArgumentException();
46
		}
47
48
		$l = $this->languageFactory->get('files_antivirus', $language);
49
50
		switch ($event->getSubject()) {
51
			case self::SUBJECT_VIRUS_DETECTED:
52
				$event->setParsedSubject($l->t('File %s is infected with %s', $event->getSubjectParameters()));
53
				break;
54
		}
55
56
		switch ($event->getMessage()) {
57
			case self::MESSAGE_FILE_DELETED:
58
				$event->setParsedMessage($l->t('It is going to be deleted'));
59
				break;
60
		}
61
62
		return $event;
63
	}
64
65
}
66