Passed
Push — master ( 726906...d2e3de )
by René
03:43
created

WatchMapper::findUpdatesForPollId()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 13
rs 10
cc 1
nc 1
nop 2
1
<?php
2
/**
3
 * @copyright Copyright (c) 2017 Vinzenz Rosenkranz <[email protected]>
4
 *
5
 * @author Vinzenz Rosenkranz <[email protected]>
6
 * @author René Gieling <[email protected]>
7
 *
8
 * @license GNU AGPL version 3 or any later version
9
 *
10
 *  This program is free software: you can redistribute it and/or modify
11
 *  it under the terms of the GNU Affero General Public License as
12
 *  published by the Free Software Foundation, either version 3 of the
13
 *  License, or (at your option) any later version.
14
 *
15
 *  This program is distributed in the hope that it will be useful,
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 *  GNU Affero General Public License for more details.
19
 *
20
 *  You should have received a copy of the GNU Affero General Public License
21
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
 *
23
 */
24
25
namespace OCA\Polls\Db;
26
27
use OCP\IDBConnection;
28
use OCP\AppFramework\Db\QBMapper;
29
30
/**
31
 * @template-extends QBMapper<Watch>
32
 */
33
class WatchMapper extends QBMapper {
34
	public function __construct(IDBConnection $db) {
35
		parent::__construct($db, 'polls_watch', '\OCA\Polls\Db\Watch');
36
	}
37
38
	/**
39
	 * @throws \OCP\AppFramework\Db\DoesNotExistException if not found
40
	 * @return Watch[]
41
	 */
42
	public function findUpdatesForPollId(int $pollId, int $offset): array {
43
		$qb = $this->db->getQueryBuilder();
44
45
		$qb->select('*')
46
		   ->from($this->getTableName())
47
		   ->where(
48
			   $qb->expr()->eq('poll_id', $qb->createNamedParameter($pollId))
49
		   )
50
		   ->andWhere(
51
			   $qb->expr()->gt('updated', $qb->createNamedParameter($offset))
52
		   );
53
54
		return $this->findEntities($qb);
55
	}
56
57
	/**
58
	 * @throws \OCP\AppFramework\Db\DoesNotExistException if not found
59
	 * @return Watch
60
	 */
61
	public function findForPollIdAndTable(int $pollId, string $table): Watch {
62
		$qb = $this->db->getQueryBuilder();
63
64
		$qb->select('*')
65
		   ->from($this->getTableName())
66
		   ->where(
67
			   $qb->expr()->eq('poll_id', $qb->createNamedParameter($pollId))
68
		   )
69
		   ->andWhere(
70
			   $qb->expr()->eq('table', $qb->createNamedParameter($table))
71
		   );
72
73
		return $this->findEntity($qb);
74
	}
75
}
76