aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files/Cache/CacheQueryBuilder.php
Commit message (Collapse)AuthorAgeFilesLines
* feat: add base class for extending the query builderRobin Appelman2024-07-121-9/+4
| | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* chore: Add SPDX headerAndy Scherzinger2024-05-241-20/+2
| | | | Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
* Merge pull request #43574 from nextcloud/enh/noid/lazyappconfig-migrate-metadataMaxence Lange2024-04-171-3/+3
|\ | | | | enh(metadata): migrate metadata to lazy appconfig
| * migrate metadata to lazy appconfigMaxence Lange2024-02-141-3/+3
| | | | | | Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
* | fix: Apply new coding standard to all filesCôme Chilliet2024-04-021-1/+1
|/ | | | Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
* ignore metadata if table is emptyMaxence Lange2023-11-141-2/+7
| | | Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
* moving metadataqueryMaxence Lange2023-11-131-1/+1
| | | Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
* feat(files): Allow advanced search for filesBenjamin Gaussorgues2023-11-101-1/+1
| | | | Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
* Support getting and setting metadata in DAV requestsLouis Chemineau2023-11-081-1/+14
| | | | Signed-off-by: Louis Chemineau <louis@chmn.me>
* IFilesMetadataMaxence Lange2023-11-071-1/+2
| | | Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
* refactor: remove where specification from SELECT getterArthur Schiwon2023-05-101-1/+0
| | | | | | | | - search constraints are now fully in control of SystemTagsInFilesDetector::detectAssignedSystemTagsIn(), avoids duplication of a WHERE statement Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
* PoC: SystemTags endpoint to return tags used by a user with meta dataArthur Schiwon2023-05-091-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Target case is photos app: when visiting the tags category, all systemtags of the whole cloud are retrieved. In subequent steps the next tag is requested until the browser view is filled with tag tiles (i.e. previews are requested just as well). With this approach, we incorpoate the dav search and look for user related tags that are used by them, and already returns the statistics (number of files tagged with the respective tag) as well as a file id for the purpose to load the preview. This defaults to the file with the highest id. Call: curl -s -u 'user:password' \ 'https://my.nc.srv/remote.php/dav/systemtags-current' \ -X PROPFIND -H 'Accept: text/plain' \ -H 'Accept-Language: en-US,en;q=0.5' -H 'Depth: 1' \ -H 'Content-Type: text/plain;charset=UTF-8' \ --data @/home/doe/request-systemtag-props.xml With request-systemtag-props.xml: <?xml version="1.0" encoding="UTF-8"?> <d:propfind xmlns:d="DAV:"> <d:prop xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns"> <oc:id/> <oc:display-name/> <oc:user-visible/> <oc:user-assignable/> <oc:can-assign/> <nc:files-assigned/> <nc:reference-fileid/> </d:prop> </d:propfind> Example output: … <d:response> <d:href>/master/remote.php/dav/systemtags/84</d:href> <d:propstat> <d:prop> <oc:id>84</oc:id> <oc:display-name>Computer</oc:display-name> <oc:user-visible>true</oc:user-visible> <oc:user-assignable>true</oc:user-assignable> <oc:can-assign>true</oc:can-assign> <nc:files-assigned>42</nc:files-assigned> <nc:reference-fileid>924022</nc:reference-fileid> </d:prop> <d:status>HTTP/1.1 200 OK</d:status> </d:propstat> </d:response> <d:response> <d:href>/remote.php/dav/systemtags/97</d:href> <d:propstat> <d:prop> <oc:id>97</oc:id> <oc:display-name>Bear</oc:display-name> <oc:user-visible>true</oc:user-visible> <oc:user-assignable>true</oc:user-assignable> <oc:can-assign>true</oc:can-assign> <nc:files-assigned>1</nc:files-assigned> <nc:reference-fileid>923422</nc:reference-fileid> </d:prop> <d:status>HTTP/1.1 200 OK</d:status> </d:propstat> </d:response> … Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
* Search without join on filecache_extendedCarl Schwan2022-06-231-4/+8
| | | | Signed-off-by: Carl Schwan <carl@carlschwan.eu>
* store unencrypted size in the unencrypted_size columnRobin Appelman2022-06-021-1/+1
| | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* Files: Extend search to also cover tagsMarcel Klehr2022-05-171-1/+1
| | | | | | fixes #326 Signed-off-by: Marcel Klehr <mklehr@gmx.net>
* Migrate from ILogger to LoggerInterface in lib/privateCôme Chilliet2022-03-241-2/+2
| | | | Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
* Move query outside the loop and reduce chunk size to 1000Sijmen Schoon2021-10-171-2/+2
| | | | | | | This involved changing CacheQueryBuilder\whereParentIn to take a parameter name, renaming the function accordingly. Signed-off-by: Sijmen Schoon <me@sijmenschoon.nl>
* rework search api to allow searching on multiple caches at onceRobin Appelman2021-06-141-6/+3
| | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* Update php licensesJohn Molakvoæ (skjnldsv)2021-06-041-2/+1
| | | | Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
* Make Cache::removeChildren non recursiveRobin Appelman2020-08-201-0/+13
| | | | | | | | | | | | Currently the "add new files during scanning" call stack is smaller than the "remove deleted files during scanning" call stack. This can lead to the scanner adding folders in the folder tree that are to deep to be removed. This changes the `removeChildren` logic to be non recursive so there is no limit to the depth of the folder tree during removal Signed-off-by: Robin Appelman <robin@icewind.nl>
* Update license headersChristoph Wurst2019-12-051-2/+7
| | | | Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
* store filecache extension fieldsRobin Appelman2019-11-131-6/+25
| | | | Signed-off-by: Robin Appelman <robin@icewind.nl>
* move more cache logic to querybuilderRobin Appelman2019-11-131-0/+73
Signed-off-by: Robin Appelman <robin@icewind.nl>