Code Duplication    Length = 40-40 lines in 2 locations

lib/Db/NotebookMapper.php 2 locations

@@ 47-86 (lines=40) @@
44
	 * @param bool|int $deleted
45
	 * @return Notebook[]|Notebook
46
	 */
47
	public function find($notebook_id = null, $user_id = null, $deleted = false) {
48
		$qb = $this->db->getQueryBuilder();
49
		$qb->select('g.*', 'g.guid as guid', $qb->createFunction('COUNT(n.id) as note_count')) //'COUNT(n.id) as note_count'
50
			->from('nextnote_groups', 'g')
51
			->leftJoin('g','nextnote_notes','n',  $qb->expr()->eq('g.id', 'n.notebook'))->groupBy(['g.id']);
52
53
		$where = [];
54
		if($notebook_id){
55
			$where['g.id'] = $notebook_id;
56
		}
57
58
		if ($user_id !== null) {
59
			$where['g.uid'] = $user_id;
60
		}
61
62
		if ($deleted !== false) {
63
			$where['g.deleted'] = $deleted;
64
		}
65
		$i = 0;
66
		foreach ($where as $field => $value){
67
			if($i === 0){
68
				$qb->where($qb->expr()->eq($field, $qb->createNamedParameter($value)));
69
			} else {
70
				$qb->andWhere($qb->expr()->eq($field, $qb->createNamedParameter($value)));
71
			}
72
			$i++;
73
		}
74
75
		$result = $qb->execute();
76
77
		/**
78
		 * @var $results Notebook[]
79
		 */
80
		$results = [];
81
		while ($item = $result->fetch()) {
82
			$results[] = $this->makeEntityFromDBResult($item);
83
		}
84
		$result->closeCursor();
85
		return $results;
86
	}
87
88
	/**
89
	 * @param $group_name
@@ 94-133 (lines=40) @@
91
	 * @param bool $deleted
92
	 * @return Notebook[]|Notebook
93
	 */
94
	public function findByName($group_name, $user_id = null, $deleted = false) {
95
		$qb = $this->db->getQueryBuilder();
96
		$qb->select('g.*', 'g.guid as guid', $qb->createFunction('COUNT(n.id) as note_count')) //'COUNT(n.id) as note_count'
97
		->from('nextnote_groups', 'g')
98
			->leftJoin('g','nextnote_notes','n',  $qb->expr()->eq('g.id', 'n.notebook'))->groupBy(['g.id']);
99
100
		$where = [];
101
		if($group_name){
102
			$where['g.name'] = $group_name;
103
		}
104
105
		if ($user_id !== null) {
106
			$where['g.uid'] = $user_id;
107
		}
108
109
		if ($deleted !== false) {
110
			$where['g.deleted'] = $deleted;
111
		}
112
		$i = 0;
113
		foreach ($where as $field => $value){
114
			if($i === 0){
115
				$qb->where($qb->expr()->eq($field, $qb->createNamedParameter($value)));
116
			} else {
117
				$qb->andWhere($qb->expr()->eq($field, $qb->createNamedParameter($value)));
118
			}
119
			$i++;
120
		}
121
122
		$result = $qb->execute();
123
124
		/**
125
		 * @var $results Notebook[]
126
		 */
127
		$results = [];
128
		while ($item = $result->fetch()) {
129
			$results[] = $this->makeEntityFromDBResult($item);
130
		}
131
		$result->closeCursor();
132
		return $results;
133
	}
134
135
   	/**
136
	 * Creates a group