Skip to content

Commit e9b83fb

Browse files
committed
code review fixes
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
1 parent 0aa2fac commit e9b83fb

6 files changed

Lines changed: 20 additions & 40 deletions

File tree

lib/Controller/Api1Controller.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ public function deleteTable(int $tableId): DataResponse {
327327
public function indexViews(int $tableId): DataResponse {
328328
try {
329329
$table = $this->tableService->find($tableId);
330-
return new DataResponse($this->viewService->formatViews($this->viewService->findAll($table, tableRowsCount: $table->getRowsCount())));
330+
return new DataResponse($this->viewService->formatViews($table->getViews() ?? []));
331331
} catch (PermissionError $e) {
332332
$this->logger->warning('A permission error occurred: ' . $e->getMessage(), ['exception' => $e]);
333333
$message = ['message' => $e->getMessage()];

lib/Db/ColumnMapper.php

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -173,27 +173,19 @@ public function countColumnsForTables(array $tableIds): array {
173173
return [];
174174
}
175175

176-
$counts = [];
176+
$counts = array_fill_keys($tableIds, 0);
177177
foreach (array_chunk($tableIds, 1000 - 1) as $tableIdsChunk) {
178178
$qb = $this->db->getQueryBuilder();
179179
$qb->select('table_id', $qb->func()->count('*', 'counter'))
180180
->from($this->table)
181181
->where($qb->expr()->in('table_id', $qb->createNamedParameter($tableIdsChunk, IQueryBuilder::PARAM_INT_ARRAY)))
182182
->groupBy('table_id');
183183

184-
try {
185-
$result = $qb->executeQuery();
186-
while ($row = $result->fetch()) {
187-
$counts[(int)$row['table_id']] = (int)$row['counter'];
188-
}
189-
$result->closeCursor();
190-
} catch (Exception $e) {
191-
$this->logger->warning('Exception occurred: ' . $e->getMessage() . ' Returning 0 for all given tables.');
184+
$result = $qb->executeQuery();
185+
while ($row = $result->fetch()) {
186+
$counts[(int)$row['table_id']] = (int)$row['counter'];
192187
}
193-
}
194-
195-
foreach ($tableIds as $tableId) {
196-
$counts[$tableId] ??= 0;
188+
$result->closeCursor();
197189
}
198190

199191
return $counts;

lib/Db/RowSleeveMapper.php

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -111,27 +111,19 @@ public function countRowsForTables(array $tableIds): array {
111111
return [];
112112
}
113113

114-
$counts = [];
114+
$counts = array_fill_keys($tableIds, 0);
115115
foreach (array_chunk($tableIds, 1000 - 1) as $tableIdsChunk) {
116116
$qb = $this->db->getQueryBuilder();
117117
$qb->select('table_id', $qb->func()->count('*', 'counter'))
118-
->from($this->table, 't1')
118+
->from($this->table)
119119
->where($qb->expr()->in('table_id', $qb->createNamedParameter($tableIdsChunk, IQueryBuilder::PARAM_INT_ARRAY)))
120120
->groupBy('table_id');
121121

122-
try {
123-
$result = $qb->executeQuery();
124-
while ($row = $result->fetch()) {
125-
$counts[(int)$row['table_id']] = (int)$row['counter'];
126-
}
127-
$result->closeCursor();
128-
} catch (Exception $e) {
129-
$this->logger->warning('Exception occurred: ' . $e->getMessage() . ' Will return 0 for all given tables.');
122+
$result = $qb->executeQuery();
123+
while ($row = $result->fetch()) {
124+
$counts[(int)$row['table_id']] = (int)$row['counter'];
130125
}
131-
}
132-
133-
foreach ($tableIds as $tableId) {
134-
$counts[$tableId] ??= 0;
126+
$result->closeCursor();
135127
}
136128

137129
return $counts;

lib/Db/ShareMapper.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ public function findAllSharesForNode(string $nodeType, int $nodeId, string $send
130130
->andWhere($qb->expr()->eq('node_type', $qb->createNamedParameter($nodeType, IQueryBuilder::PARAM_STR)))
131131
->andWhere($qb->expr()->eq('node_id', $qb->createNamedParameter($nodeId, IQueryBuilder::PARAM_INT)));
132132

133+
if ($sender !== '') {
134+
$qb->andWhere($qb->expr()->eq('sender', $qb->createNamedParameter($sender, IQueryBuilder::PARAM_STR)));
135+
}
136+
133137
if (!empty($excluded)) {
134138
$qb->andWhere($qb->expr()->notIn('receiver_type', $qb->createNamedParameter($excluded, IQueryBuilder::PARAM_STR_ARRAY)));
135139
}

lib/Service/ShareService.php

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -266,16 +266,12 @@ public function countSharesForTables(array $tableIds, ?string $userId = null): a
266266
$excluded = !$this->circleHelper->isCirclesEnabled() ? [ShareReceiverType::CIRCLE] : [];
267267
$shares = $this->mapper->findAllSharesForNodes('table', $tableIds, $userId, $excluded);
268268

269-
$counts = [];
269+
$counts = array_fill_keys($tableIds, 0);
270270
foreach ($shares as $share) {
271271
$nodeId = $share->getNodeId();
272272
$counts[$nodeId] = ($counts[$nodeId] ?? 0) + 1;
273273
}
274274

275-
foreach ($tableIds as $tableId) {
276-
$counts[$tableId] ??= 0;
277-
}
278-
279275
return $counts;
280276
} catch (Exception $e) {
281277
$this->logger->error($e->getMessage());
@@ -296,16 +292,12 @@ public function countSharesForViews(array $viewIds, ?string $userId = null): arr
296292
$excluded = !$this->circleHelper->isCirclesEnabled() ? [ShareReceiverType::CIRCLE] : [];
297293
$shares = $this->mapper->findAllSharesForNodes('view', $viewIds, $userId, $excluded);
298294

299-
$counts = [];
295+
$counts = array_fill_keys($viewIds, 0);
300296
foreach ($shares as $share) {
301297
$nodeId = $share->getNodeId();
302298
$counts[$nodeId] = ($counts[$nodeId] ?? 0) + 1;
303299
}
304300

305-
foreach ($viewIds as $viewId) {
306-
$counts[$viewId] ??= 0;
307-
}
308-
309301
return $counts;
310302
} catch (Exception $e) {
311303
$this->logger->error($e->getMessage());

lib/Service/ViewService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -597,8 +597,8 @@ private function setIsSharedState(View $view, string $userId, ?int $sharesCount
597597
$view->setHasShares($sharesCount > 0);
598598
} else {
599599
try {
600-
$allShares = $this->shareService->findAll('view', $view->getId(), $userId);
601-
$view->setHasShares(count($allShares) !== 0);
600+
$counts = $this->shareService->countSharesForViews([$view->getId()], $userId);
601+
$view->setHasShares(($counts[$view->getId()] ?? 0) > 0);
602602
} catch (InternalError $e) {
603603
}
604604
}

0 commit comments

Comments
 (0)