aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/lib/Controller/DeletedShareAPIController.php8
-rw-r--r--apps/files_sharing/lib/Controller/PublicPreviewController.php4
-rw-r--r--apps/files_sharing/lib/Controller/RemoteController.php12
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php36
-rw-r--r--apps/files_sharing/lib/Controller/ShareInfoController.php2
-rw-r--r--apps/files_sharing/lib/Controller/ShareesAPIController.php4
-rw-r--r--apps/files_sharing/lib/External/Manager.php10
-rw-r--r--apps/files_sharing/lib/ResponseDefinitions.php52
-rw-r--r--apps/files_sharing/openapi.json5
9 files changed, 70 insertions, 63 deletions
diff --git a/apps/files_sharing/lib/Controller/DeletedShareAPIController.php b/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
index 9f80d285d4d..8d93afa4e04 100644
--- a/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/DeletedShareAPIController.php
@@ -135,7 +135,7 @@ class DeletedShareAPIController extends OCSController {
/**
* Get a list of all deleted shares
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingDeletedShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingDeletedShare>, array{}>
*
* 200: Deleted shares returned
*/
@@ -148,9 +148,9 @@ class DeletedShareAPIController extends OCSController {
$shares = array_merge($groupShares, $roomShares, $deckShares, $sciencemeshShares);
- $shares = array_map(function (IShare $share) {
+ $shares = array_values(array_map(function (IShare $share) {
return $this->formatShare($share);
- }, $shares);
+ }, $shares));
return new DataResponse($shares);
}
@@ -159,7 +159,7 @@ class DeletedShareAPIController extends OCSController {
* Undelete a deleted share
*
* @param string $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSException
* @throws OCSNotFoundException Share not found
*
diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php
index da71aca904c..8e8ee3768cb 100644
--- a/apps/files_sharing/lib/Controller/PublicPreviewController.php
+++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php
@@ -62,7 +62,7 @@ class PublicPreviewController extends PublicShareController {
* @param int $x Width of the preview
* @param int $y Height of the preview
* @param bool $a Whether to not crop the preview
- * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, array<empty>, array{}>
+ * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>
*
* 200: Preview returned
* 400: Getting preview is not possible
@@ -134,7 +134,7 @@ class PublicPreviewController extends PublicShareController {
* Get a direct link preview for a shared file
*
* @param string $token Token of the share
- * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, array<empty>, array{}>
+ * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>
*
* 200: Preview returned
* 400: Getting preview is not possible
diff --git a/apps/files_sharing/lib/Controller/RemoteController.php b/apps/files_sharing/lib/Controller/RemoteController.php
index cdac35e0d9c..e23ae51f219 100644
--- a/apps/files_sharing/lib/Controller/RemoteController.php
+++ b/apps/files_sharing/lib/Controller/RemoteController.php
@@ -41,7 +41,7 @@ class RemoteController extends OCSController {
/**
* Get list of pending remote shares
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingRemoteShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingRemoteShare>, array{}>
*
* 200: Pending remote shares returned
*/
@@ -54,7 +54,7 @@ class RemoteController extends OCSController {
* Accept a remote share
*
* @param int $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
*
* 200: Share accepted successfully
@@ -75,7 +75,7 @@ class RemoteController extends OCSController {
* Decline a remote share
*
* @param int $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
*
* 200: Share declined successfully
@@ -116,14 +116,14 @@ class RemoteController extends OCSController {
/**
* Get a list of accepted remote shares
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingRemoteShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingRemoteShare>, array{}>
*
* 200: Accepted remote shares returned
*/
#[NoAdminRequired]
public function getShares() {
$shares = $this->externalManager->getAcceptedShares();
- $shares = array_map('self::extendShareInfo', $shares);
+ $shares = array_map(self::extendShareInfo(...), $shares);
return new DataResponse($shares);
}
@@ -153,7 +153,7 @@ class RemoteController extends OCSController {
* Unshare a remote share
*
* @param int $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
* @throws OCSForbiddenException Unsharing is not possible
*
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 077eb4b35a3..71f73f777a5 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -351,10 +351,10 @@ class ShareAPIController extends OCSController {
/**
- * @param array $shares
- * @param array|null $updatedDisplayName
+ * @param list<Files_SharingShare> $shares
+ * @param array<string, string>|null $updatedDisplayName
*
- * @return array
+ * @return list<Files_SharingShare>
*/
private function fixMissingDisplayName(array $shares, ?array $updatedDisplayName = null): array {
$userIds = $updated = [];
@@ -450,7 +450,7 @@ class ShareAPIController extends OCSController {
*
* @param string $id ID of the share
* @param bool $include_tags Include tags in the share
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
* @throws OCSNotFoundException Share not found
*
* 200: Share returned
@@ -468,7 +468,7 @@ class ShareAPIController extends OCSController {
$share = $this->formatShare($share);
if ($include_tags) {
- $share = Helper::populateTags([$share], 'file_source', \OC::$server->getTagManager());
+ $share = Helper::populateTags([$share], \OC::$server->getTagManager());
} else {
$share = [$share];
}
@@ -486,7 +486,7 @@ class ShareAPIController extends OCSController {
* Delete a share
*
* @param string $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
* @throws OCSForbiddenException Missing permissions to delete the share
*
@@ -828,7 +828,7 @@ class ShareAPIController extends OCSController {
* @param null|Node $node
* @param boolean $includeTags
*
- * @return Files_SharingShare[]
+ * @return list<Files_SharingShare>
*/
private function getSharedWithMe($node, bool $includeTags): array {
$userShares = $this->shareManager->getSharedWith($this->userId, IShare::TYPE_USER, $node, -1, 0);
@@ -856,7 +856,7 @@ class ShareAPIController extends OCSController {
}
if ($includeTags) {
- $formatted = Helper::populateTags($formatted, 'file_source', \OC::$server->getTagManager());
+ $formatted = Helper::populateTags($formatted, \OC::$server->getTagManager());
}
return $formatted;
@@ -865,7 +865,7 @@ class ShareAPIController extends OCSController {
/**
* @param Node $folder
*
- * @return Files_SharingShare[]
+ * @return list<Files_SharingShare>
* @throws OCSBadRequestException
* @throws NotFoundException
*/
@@ -925,7 +925,7 @@ class ShareAPIController extends OCSController {
* @param string $path Get shares for a specific path
* @param string $include_tags Include tags in the share
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
* @throws OCSNotFoundException The folder was not found or is inaccessible
*
* 200: Shares returned
@@ -974,7 +974,7 @@ class ShareAPIController extends OCSController {
* @param bool $subFiles
* @param bool $includeTags
*
- * @return Files_SharingShare[]
+ * @return list<Files_SharingShare>
* @throws NotFoundException
* @throws OCSBadRequestException
*/
@@ -1045,7 +1045,7 @@ class ShareAPIController extends OCSController {
if ($includeTags) {
$formatted =
- Helper::populateTags($formatted, 'file_source', \OC::$server->getTagManager());
+ Helper::populateTags($formatted, \OC::$server->getTagManager());
}
return $formatted;
@@ -1057,7 +1057,7 @@ class ShareAPIController extends OCSController {
*
* @param string $path Path all shares will be relative to
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
* @throws InvalidPathException
* @throws NotFoundException
* @throws OCSNotFoundException The given path is invalid
@@ -1371,7 +1371,7 @@ class ShareAPIController extends OCSController {
/**
* Get all shares that are still pending
*
- * @return DataResponse<Http::STATUS_OK, Files_SharingShare[], array{}>
+ * @return DataResponse<Http::STATUS_OK, list<Files_SharingShare>, array{}>
*
* 200: Pending shares returned
*/
@@ -1394,7 +1394,7 @@ class ShareAPIController extends OCSController {
}
}
- $result = array_filter(array_map(function (IShare $share) {
+ $result = array_values(array_filter(array_map(function (IShare $share) {
$userFolder = $this->rootFolder->getUserFolder($share->getSharedBy());
$node = $userFolder->getFirstNodeById($share->getNodeId());
if (!$node) {
@@ -1415,7 +1415,7 @@ class ShareAPIController extends OCSController {
}
}, $pendingShares), function ($entry) {
return $entry !== null;
- });
+ }));
return new DataResponse($result);
}
@@ -1424,7 +1424,7 @@ class ShareAPIController extends OCSController {
* Accept a share
*
* @param string $id ID of the share
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
* @throws OCSNotFoundException Share not found
* @throws OCSException
* @throws OCSBadRequestException Share could not be accepted
@@ -2095,7 +2095,7 @@ class ShareAPIController extends OCSController {
* @throws OCSForbiddenException You are not allowed to send mail notifications
* @throws OCSBadRequestException Invalid request or wrong password
* @throws OCSException Error while sending mail notification
- * @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
+ * @return DataResponse<Http::STATUS_OK, list<empty>, array{}>
*
* 200: The email notification was sent successfully
*/
diff --git a/apps/files_sharing/lib/Controller/ShareInfoController.php b/apps/files_sharing/lib/Controller/ShareInfoController.php
index 05816a986f7..7805973f3c5 100644
--- a/apps/files_sharing/lib/Controller/ShareInfoController.php
+++ b/apps/files_sharing/lib/Controller/ShareInfoController.php
@@ -48,7 +48,7 @@ class ShareInfoController extends ApiController {
* @param string|null $password Password of the share
* @param string|null $dir Subdirectory to get info about
* @param int $depth Maximum depth to get info about
- * @return JSONResponse<Http::STATUS_OK, Files_SharingShareInfo, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, array<empty>, array{}>
+ * @return JSONResponse<Http::STATUS_OK, Files_SharingShareInfo, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>
*
* 200: Share info returned
* 403: Getting share info is not allowed
diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php
index 606a3d11de6..3a04dda72a1 100644
--- a/apps/files_sharing/lib/Controller/ShareesAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php
@@ -94,7 +94,7 @@ class ShareesAPIController extends OCSController {
* @param string|null $itemType Limit to specific item types
* @param int $page Page offset for searching
* @param int $perPage Limit amount of search results per page
- * @param int|int[]|null $shareType Limit to specific share types
+ * @param int|list<int>|null $shareType Limit to specific share types
* @param bool $lookup If a global lookup should be performed too
* @return DataResponse<Http::STATUS_OK, Files_SharingShareesSearchResult, array{Link?: string}>
* @throws OCSBadRequestException Invalid search parameters
@@ -300,7 +300,7 @@ class ShareesAPIController extends OCSController {
* Find recommended sharees
*
* @param string $itemType Limit to specific item types
- * @param int|int[]|null $shareType Limit to specific share types
+ * @param int|list<int>|null $shareType Limit to specific share types
* @return DataResponse<Http::STATUS_OK, Files_SharingShareesRecommendedResult, array{}>
*
* 200: Recommended sharees returned
diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php
index e0d7f96cb90..e10b6c1c91f 100644
--- a/apps/files_sharing/lib/External/Manager.php
+++ b/apps/files_sharing/lib/External/Manager.php
@@ -11,6 +11,7 @@ use Doctrine\DBAL\Driver\Exception;
use OC\Files\Filesystem;
use OCA\FederatedFileSharing\Events\FederatedShareAddedEvent;
use OCA\Files_Sharing\Helper;
+use OCA\Files_Sharing\ResponseDefinitions;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudFederationFactory;
@@ -30,6 +31,9 @@ use OCP\Share;
use OCP\Share\IShare;
use Psr\Log\LoggerInterface;
+/**
+ * @psalm-import-type Files_SharingRemoteShare from ResponseDefinitions
+ */
class Manager {
public const STORAGE = '\OCA\Files_Sharing\External\Storage';
@@ -686,7 +690,7 @@ class Manager {
/**
* return a list of shares which are not yet accepted by the user
*
- * @return array list of open server-to-server shares
+ * @return list<Files_SharingRemoteShare> list of open server-to-server shares
*/
public function getOpenShares() {
return $this->getShares(false);
@@ -695,7 +699,7 @@ class Manager {
/**
* return a list of shares which are accepted by the user
*
- * @return array list of accepted server-to-server shares
+ * @return list<Files_SharingRemoteShare> list of accepted server-to-server shares
*/
public function getAcceptedShares() {
return $this->getShares(true);
@@ -707,7 +711,7 @@ class Manager {
* @param bool|null $accepted True for accepted only,
* false for not accepted,
* null for all shares of the user
- * @return array list of open server-to-server shares
+ * @return list<Files_SharingRemoteShare> list of open server-to-server shares
*/
private function getShares($accepted) {
$user = $this->userManager->get($this->uid);
diff --git a/apps/files_sharing/lib/ResponseDefinitions.php b/apps/files_sharing/lib/ResponseDefinitions.php
index d412b93a135..0edf67fe042 100644
--- a/apps/files_sharing/lib/ResponseDefinitions.php
+++ b/apps/files_sharing/lib/ResponseDefinitions.php
@@ -178,38 +178,38 @@ namespace OCA\Files_Sharing;
*
* @psalm-type Files_SharingShareesSearchResult = array{
* exact: array{
- * circles: Files_SharingShareeCircle[],
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * rooms: Files_SharingSharee[],
- * users: Files_SharingShareeUser[],
+ * circles: list<Files_SharingShareeCircle>,
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingSharee>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * rooms: list<Files_SharingSharee>,
+ * users: list<Files_SharingShareeUser>,
* },
- * circles: Files_SharingShareeCircle[],
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * lookup: Files_SharingShareeLookup[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * rooms: Files_SharingSharee[],
- * users: Files_SharingShareeUser[],
+ * circles: list<Files_SharingShareeCircle>,
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingSharee>,
+ * lookup: list<Files_SharingShareeLookup>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * rooms: list<Files_SharingSharee>,
+ * users: list<Files_SharingShareeUser>,
* lookupEnabled: bool,
* }
*
* @psalm-type Files_SharingShareesRecommendedResult = array{
* exact: array{
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * users: Files_SharingShareeUser[],
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingSharee>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * users: list<Files_SharingShareeUser>,
* },
- * emails: Files_SharingShareeEmail[],
- * groups: Files_SharingSharee[],
- * remote_groups: Files_SharingShareeRemoteGroup[],
- * remotes: Files_SharingShareeRemote[],
- * users: Files_SharingShareeUser[],
+ * emails: list<Files_SharingShareeEmail>,
+ * groups: list<Files_SharingSharee>,
+ * remote_groups: list<Files_SharingShareeRemoteGroup>,
+ * remotes: list<Files_SharingShareeRemote>,
+ * users: list<Files_SharingShareeUser>,
* }
*
* @psalm-type Files_SharingShareInfo = array{
@@ -222,7 +222,7 @@ namespace OCA\Files_Sharing;
* size: int|float,
* type: string,
* etag: string,
- * children?: array<string, mixed>[],
+ * children?: list<array<string, mixed>>,
* }
*/
class ResponseDefinitions {
diff --git a/apps/files_sharing/openapi.json b/apps/files_sharing/openapi.json
index 848b6293cc8..76063ad3f93 100644
--- a/apps/files_sharing/openapi.json
+++ b/apps/files_sharing/openapi.json
@@ -2170,7 +2170,10 @@
"$ref": "#/components/schemas/OCSMeta"
},
"data": {
- "$ref": "#/components/schemas/Share"
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Share"
+ }
}
}
}