feat(search): allows to search files by path

Use `GET search/providers/files/search?path=<path>` with beginning of
the path

Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
pull/43860/head
Benjamin Gaussorgues 3 months ago
parent 2ae5bdba89
commit f3b5c7caf3
No known key found for this signature in database
GPG Key ID: 5DAC1CAFAA6DB883

@ -116,6 +116,7 @@ class FilesSearchProvider implements IFilteringProvider {
'max-size',
'mime',
'type',
'path',
'is-favorite',
'title-only',
];
@ -131,6 +132,7 @@ class FilesSearchProvider implements IFilteringProvider {
new FilterDefinition('max-size', FilterDefinition::TYPE_INT),
new FilterDefinition('mime', FilterDefinition::TYPE_STRING),
new FilterDefinition('type', FilterDefinition::TYPE_STRING),
new FilterDefinition('path', FilterDefinition::TYPE_STRING),
new FilterDefinition('is-favorite', FilterDefinition::TYPE_BOOL),
];
}
@ -182,6 +184,7 @@ class FilesSearchProvider implements IFilteringProvider {
'max-size' => new SearchComparison(ISearchComparison::COMPARE_LESS_THAN_EQUAL, 'size', $filter->get()),
'mime' => new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mimetype', $filter->get()),
'type' => new SearchComparison(ISearchComparison::COMPARE_LIKE, 'mimetype', $filter->get() . '/%'),
'path' => new SearchComparison(ISearchComparison::COMPARE_LIKE, 'path', 'files/' . ltrim($filter->get(), '/') . '%'),
'person' => $this->buildPersonSearchQuery($filter),
default => throw new InvalidArgumentException('Unsupported comparison'),
};

Loading…
Cancel
Save