Skip to content

Commit 72b2ec5

Browse files
committed
fix(TreeMapper): Fix Replacement for removed array_flatten function
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
1 parent f10dfe9 commit 72b2ec5

2 files changed

Lines changed: 52 additions & 15 deletions

File tree

lib/Db/TreeMapper.php

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,8 @@ protected function getFindSoftDeletedChildrenQuery(string $type): IQueryBuilder
258258
* @psalm-param T $type
259259
* @param int $folderId
260260
* @param bool $softDeleted
261-
* @return Entity[]
262-
* @psalm-return E[]
261+
* @return list<Entity>
262+
* @psalm-return list<E>
263263
* @psalm-template T as TreeMapper::TYPE_*
264264
* @psalm-template E as (T is TreeMapper::TYPE_FOLDER ? Folder : (T is TreeMapper::TYPE_BOOKMARK ? Bookmark : SharedFolder))
265265
*/
@@ -313,21 +313,41 @@ public function findParentsOf(string $type, int $itemId, $withSoftDeletions = fa
313313
* @param string $type
314314
* @psalm-param T $type
315315
* @param int $folderId
316-
* @return Entity[]
317-
* @psalm-return E[]
316+
* @return list<Entity>
317+
* @psalm-return list<E>
318318
* @psalm-template T as TreeMapper::TYPE_*
319319
* @psalm-template E as (T is TreeMapper::TYPE_FOLDER ? Folder : (T is TreeMapper::TYPE_BOOKMARK ? Bookmark : SharedFolder))
320320
*/
321321
public function findByAncestorFolder(string $type, int $folderId): array {
322-
$descendants = [];
323-
$newDescendants = $this->findChildren($type, $folderId);
324-
do {
325-
array_push($descendants, ...$newDescendants);
326-
$newDescendants = array_merge(...array_map(function (Entity $descendant) use ($type) {
327-
return $this->findChildren($type, $descendant->getId());
328-
}, $newDescendants));
329-
} while (count($newDescendants) > 0);
330-
return $descendants;
322+
if ($type === TreeMapper::TYPE_FOLDER) {
323+
$descendants = [];
324+
$newDescendants = $this->findChildren(TreeMapper::TYPE_FOLDER, $folderId);
325+
do {
326+
array_push($descendants, ...$newDescendants);
327+
$newDescendants = array_merge(...array_map(function (Folder $folder): array {
328+
return $this->findChildren(TreeMapper::TYPE_FOLDER, $folder->getId());
329+
}, $newDescendants));
330+
} while (count($newDescendants) > 0);
331+
return $descendants;
332+
}
333+
334+
if ($type === TreeMapper::TYPE_SHARE) {
335+
$descendantFolders = $this->findChildren(TreeMapper::TYPE_FOLDER, $folderId);
336+
$descendants = array_merge(...array_map(function (Folder $folder): array {
337+
return $this->findChildren(TreeMapper::TYPE_SHARE, $folder->getId());
338+
}, $descendantFolders));
339+
return $descendants;
340+
}
341+
342+
if ($type === TreeMapper::TYPE_BOOKMARK) {
343+
$descendantFolders = $this->findChildren(TreeMapper::TYPE_FOLDER, $folderId);
344+
$descendants = array_merge(...array_map(function (Folder $folder): array {
345+
return $this->findChildren(TreeMapper::TYPE_BOOKMARK, $folder->getId());
346+
}, $descendantFolders));
347+
return $descendants;
348+
}
349+
350+
throw new \InvalidArgumentException('Invalid type');
331351
}
332352

333353
/**

psalm-baseline.xml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<files psalm-version="6.13.0@70cdf647255a1362b426bb0f522a85817b8c791c">
2+
<files psalm-version="6.13.1@1e3b7f0a8ab32b23197b91107adc0a7ed8a05b51">
33
<file src="lib/AppInfo/Application.php">
44
<InvalidArgument>
55
<code><![CDATA[UsersGroupsCirclesListener::class]]></code>
@@ -80,10 +80,15 @@
8080
<code><![CDATA[Folder]]></code>
8181
</InvalidReturnType>
8282
<NoValue>
83+
<code><![CDATA[$share]]></code>
84+
<code><![CDATA[$share]]></code>
85+
<code><![CDATA[$share]]></code>
8386
<code><![CDATA[return $this->findEntityWithType($qb, TreeMapper::TYPE_FOLDER);]]></code>
8487
</NoValue>
8588
<ReservedWord>
86-
<code><![CDATA[Entity]]></code>
89+
<code><![CDATA[Folder]]></code>
90+
<code><![CDATA[Folder]]></code>
91+
<code><![CDATA[Folder]]></code>
8792
<code><![CDATA[Folder]]></code>
8893
<code><![CDATA[SharedFolder]]></code>
8994
</ReservedWord>
@@ -150,6 +155,12 @@
150155
<code><![CDATA[\OC\User\NoUserException]]></code>
151156
</UndefinedDocblockClass>
152157
</file>
158+
<file src="lib/Service/BookmarkService.php">
159+
<NoValue>
160+
<code><![CDATA[$bookmark]]></code>
161+
<code><![CDATA[$folder]]></code>
162+
</NoValue>
163+
</file>
153164
<file src="lib/Service/BookmarksParser.php">
154165
<InvalidScalarArgument>
155166
<code><![CDATA[(int)($attributes['add_date']) / 1000]]></code>
@@ -184,6 +195,12 @@
184195
<code><![CDATA[string]]></code>
185196
</InvalidReturnType>
186197
</file>
198+
<file src="lib/Service/HtmlExporter.php">
199+
<NoValue>
200+
<code><![CDATA[$bookmark]]></code>
201+
<code><![CDATA[$childFolder]]></code>
202+
</NoValue>
203+
</file>
187204
<file src="lib/Service/LinkExplorer.php">
188205
<UndefinedInterfaceMethod>
189206
<code><![CDATA[setMinimumImageDimensions]]></code>

0 commit comments

Comments
 (0)