ScheduledNotifications   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 3
dl 0
loc 38
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A run() 0 13 3
1
<?php
2
/**
3
 * @copyright Copyright (c) 2017 Julius Härtl <[email protected]>
4
 *
5
 * @author Julius Härtl <[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
24
namespace OCA\Deck\Cron;
25
26
use OC\BackgroundJob\Job;
27
use OCA\Deck\Db\Card;
28
use OCA\Deck\Db\CardMapper;
29
use OCA\Deck\Notification\NotificationHelper;
30
use OCP\AppFramework\Db\DoesNotExistException;
31
use OCP\ILogger;
32
33
class ScheduledNotifications extends Job {
34
35
	/** @var CardMapper */
36
	protected $cardMapper;
37
	/** @var NotificationHelper */
38
	protected $notificationHelper;
39
	/** @var ILogger */
40
	protected $logger;
41
42
	public function __construct(
43
		CardMapper $cardMapper,
44
		NotificationHelper $notificationHelper,
45
		ILogger $logger
46
	) {
47
		$this->cardMapper = $cardMapper;
48
		$this->notificationHelper = $notificationHelper;
49
		$this->logger = $logger;
50
	}
51
52
	/**
53
	 * @param $argument
54
	 * @SuppressWarnings(PHPMD.UnusedFormalParameter)
55
	 */
56
	public function run($argument) {
57
		// Notify board owner and card creator about overdue cards
58
		$cards = $this->cardMapper->findOverdue();
59
		/** @var Card $card */
60
		foreach ($cards as $card) {
61
			try {
62
				$this->notificationHelper->sendCardDuedate($card);
63
			} catch (DoesNotExistException $e) {
64
				// Skip if any error occurs
65
				$this->logger->debug('Could not create overdue notification for card with id ' . $card->getId());
66
			}
67
		}
68
	}
69
70
}
71