diff options
author | Robin Appelman <robin@icewind.nl> | 2022-08-01 16:36:39 +0300 |
---|---|---|
committer | Louis Chemineau <louis@chmn.me> | 2022-08-22 21:03:51 +0300 |
commit | 4aa8a0a78f862ea165236bd599b56b11509edfb0 (patch) | |
tree | cdd4bbeac5d2c259ca79f14046794b3b0306f791 /lib | |
parent | 10f44aacc8f5161655694fff2dcca0f8d83ba3d1 (diff) |
retreive more metadata for album files
Signed-off-by: Louis Chemineau <louis@chmn.me>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Album/AlbumFile.php | 27 | ||||
-rw-r--r-- | lib/Album/AlbumMapper.php | 4 | ||||
-rw-r--r-- | lib/Album/AlbumWithFiles.php | 13 |
3 files changed, 39 insertions, 5 deletions
diff --git a/lib/Album/AlbumFile.php b/lib/Album/AlbumFile.php index acd08707..99823650 100644 --- a/lib/Album/AlbumFile.php +++ b/lib/Album/AlbumFile.php @@ -27,11 +27,24 @@ class AlbumFile { private int $fileId; private string $name; private string $mimeType; + private int $size; + private int $mtime; + private string $etag; - public function __construct(int $fileId, string $name, string $mimeType) { + public function __construct( + int $fileId, + string $name, + string $mimeType, + int $size, + int $mtime, + string $etag + ) { $this->fileId = $fileId; $this->name = $name; $this->mimeType = $mimeType; + $this->size = $size; + $this->mtime = $mtime; + $this->etag = $etag; } public function getFileId(): int { @@ -45,4 +58,16 @@ class AlbumFile { public function getMimeType(): string { return $this->mimeType; } + + public function getSize(): int { + return $this->size; + } + + public function getMTime(): int { + return $this->mtime; + } + + public function getEtag() { + return $this->etag; + } } diff --git a/lib/Album/AlbumMapper.php b/lib/Album/AlbumMapper.php index 99923d8f..6d119322 100644 --- a/lib/Album/AlbumMapper.php +++ b/lib/Album/AlbumMapper.php @@ -106,7 +106,7 @@ class AlbumMapper { */ public function getForUserWithFiles(string $userId): array { $query = $this->connection->getQueryBuilder(); - $query->select("fileid", "mimetype", "a.album_id") + $query->select("fileid", "mimetype", "a.album_id", "size", "mtime", "etag") ->selectAlias("f.name", "file_name") ->selectAlias("a.name", "album_name") ->from("photos_albums", "a") @@ -122,7 +122,7 @@ class AlbumMapper { if ($row['fileid']) { $mimeId = $row['mimetype']; $mimeType = $this->mimeTypeLoader->getMimetypeById($mimeId); - $filesByAlbum[$albumId][] = new AlbumFile($row['fileid'], $row['file_name'], $mimeType); + $filesByAlbum[$albumId][] = new AlbumFile($row['fileid'], $row['file_name'], $mimeType, $row['size'], $row['mtime'], $row['etag']); } if (!isset($albumsById[$albumId])) { diff --git a/lib/Album/AlbumWithFiles.php b/lib/Album/AlbumWithFiles.php index 4ffc6d50..d4724091 100644 --- a/lib/Album/AlbumWithFiles.php +++ b/lib/Album/AlbumWithFiles.php @@ -27,7 +27,7 @@ use OC\Files\Cache\CacheEntry; class AlbumWithFiles { private AlbumInfo $info; - /** @var CacheEntry[] */ + /** @var AlbumFile[] */ private array $files; public function __construct(AlbumInfo $info, array $files) { @@ -40,9 +40,18 @@ class AlbumWithFiles { } /** - * @return CacheEntry[] + * @return AlbumFile[] */ public function getFiles(): array { return $this->files; } + + /** + * @return int[] + */ + public function getFileIds(): array { + return array_map(function(AlbumFile $file) { + return $file->getFileId(); + }, $this->files); + } } |