Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/photos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2022-08-01 16:36:39 +0300
committerLouis Chemineau <louis@chmn.me>2022-08-22 21:03:51 +0300
commit4aa8a0a78f862ea165236bd599b56b11509edfb0 (patch)
treecdd4bbeac5d2c259ca79f14046794b3b0306f791 /lib
parent10f44aacc8f5161655694fff2dcca0f8d83ba3d1 (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.php27
-rw-r--r--lib/Album/AlbumMapper.php4
-rw-r--r--lib/Album/AlbumWithFiles.php13
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);
+ }
}