diff --git a/src/Nextcloud.php b/src/Nextcloud.php index 8f8e669..120ede0 100644 --- a/src/Nextcloud.php +++ b/src/Nextcloud.php @@ -210,7 +210,21 @@ final public function listContents(string $directory = '', bool $recursive = fal $nodes = $node->getDirectoryListing(); $result = array_map(function (\OCP\Files\Node $node) { - return $this->normalizeNodeInfo($node); + $attributes = $this->normalizeNodeInfo($node); + if ($this->isDirectory($node)) { + return new DirectoryAttributes( + $attributes['path'], + $attributes['visibility'], + $attributes['time'] + ); + } else { + return new FileAttributes( + $attributes['path'], + $attributes['size'], + $attributes['visibility'], + $attributes['timestamp'] + ); + } }, $nodes); } diff --git a/src/NextcloudCalendar.php b/src/NextcloudCalendar.php index 8dcfc96..906a319 100644 --- a/src/NextcloudCalendar.php +++ b/src/NextcloudCalendar.php @@ -246,7 +246,12 @@ final public function listContents(string $directory = '', bool $recursive = fal $calendars = $this->calDavBackend->getCalendarsForUser($this->userId); return array_map(function ($calendar) { - return $this->normalizeCalendar($calendar); + $attributes = $this->normalizeCalendar($calendar); + return new DirectoryAttributes( + $attributes['path'], + $attributes['visibility'], + $attributes['time'] + ); }, $calendars); } else { $directory = basename($directory); @@ -260,7 +265,13 @@ final public function listContents(string $directory = '', bool $recursive = fal } return array_map(function($calendarItem) use ($directory) { - return $this->normalizeCalendarItem($calendarItem, $directory); + $attributes = $this->normalizeCalendarItem($calendarItem, $directory); + return new FileAttributes( + $attributes['path'], + $attributes['size'], + $attributes['visibility'], + $attributes['timestamp'] + ); }, $contents); } } diff --git a/src/NextcloudContacts.php b/src/NextcloudContacts.php index a23ac75..6afde02 100644 --- a/src/NextcloudContacts.php +++ b/src/NextcloudContacts.php @@ -252,7 +252,12 @@ final public function listContents(string $directory = '', bool $recursive = fal $addressBooks = $this->cardDavBackend->getAddressBooksForUser($this->userId); return array_map(function ($addressBook) { - return $this->normalizeAddressBook($addressBook); + $attributes = $this->normalizeAddressBook($addressBook); + return new DirectoryAttributes( + $attributes['path'], + $attributes['visibility'], + $attributes['time'] + ); }, $addressBooks); } else { $directory = basename($directory); @@ -266,7 +271,13 @@ final public function listContents(string $directory = '', bool $recursive = fal } return array_map(function($card) use ($directory) { - return $this->normalizeCard($card, $directory); + $attributes = $this->normalizeCard($card, $directory); + return new FileAttributes( + $attributes['path'], + $attributes['size'], + $attributes['visibility'], + $attributes['timestamp'] + ); }, $contents); } } diff --git a/src/NextcloudProfile.php b/src/NextcloudProfile.php index 4fb7c55..8e7b311 100644 --- a/src/NextcloudProfile.php +++ b/src/NextcloudProfile.php @@ -182,9 +182,14 @@ final public function directoryExists(string $path): bool */ final public function listContents(string $directory = '', bool $recursive = false): iterable { - return [ - $this->normalizeProfile() - ]; + $attributes = $this->normalizeProfile(); + + return [new FileAttributes( + $attributes['path'], + $attributes['size'], + $attributes['visibility'], + $attributes['timestamp'] + )]; } /**