aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2017-04-05 15:12:30 +0200
committerRobin Appelman <robin@icewind.nl>2017-04-05 15:22:53 +0200
commitbb7e236e7466dadcd909ec93cd894a7602473f88 (patch)
treec4650875dd7832f4cc345e89be0a2ac6cedff828
parente0227cb4588a343db9eadfefc2733660877fb60d (diff)
downloadnextcloud-server-bb7e236e7466dadcd909ec93cd894a7602473f88.tar.gz
nextcloud-server-bb7e236e7466dadcd909ec93cd894a7602473f88.zip
Allow searching file by fileid
Signed-off-by: Robin Appelman <robin@icewind.nl>
-rw-r--r--apps/dav/lib/Files/FileSearchBackend.php8
-rw-r--r--lib/private/Files/Cache/QuerySearchHelper.php4
2 files changed, 8 insertions, 4 deletions
diff --git a/apps/dav/lib/Files/FileSearchBackend.php b/apps/dav/lib/Files/FileSearchBackend.php
index 5816c659932..0d837807fd8 100644
--- a/apps/dav/lib/Files/FileSearchBackend.php
+++ b/apps/dav/lib/Files/FileSearchBackend.php
@@ -116,6 +116,7 @@ class FileSearchBackend implements ISearchBackend {
new SearchPropertyDefinition('{DAV:}getlastmodified', true, true, true, SearchPropertyDefinition::DATATYPE_DATETIME),
new SearchPropertyDefinition(FilesPlugin::SIZE_PROPERTYNAME, true, true, true, SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER),
new SearchPropertyDefinition(TagsPlugin::FAVORITE_PROPERTYNAME, true, true, true, SearchPropertyDefinition::DATATYPE_BOOLEAN),
+ new SearchPropertyDefinition(FilesPlugin::INTERNAL_FILEID_PROPERTYNAME, true, true, false, SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER),
// select only properties
new SearchPropertyDefinition('{DAV:}resourcetype', false, true, false),
@@ -127,7 +128,6 @@ class FileSearchBackend implements ISearchBackend {
new SearchPropertyDefinition(FilesPlugin::OWNER_DISPLAY_NAME_PROPERTYNAME, false, true, false),
new SearchPropertyDefinition(FilesPlugin::DATA_FINGERPRINT_PROPERTYNAME, false, true, false),
new SearchPropertyDefinition(FilesPlugin::HAS_PREVIEW_PROPERTYNAME, false, true, false, SearchPropertyDefinition::DATATYPE_BOOLEAN),
- new SearchPropertyDefinition(FilesPlugin::INTERNAL_FILEID_PROPERTYNAME, false, true, false, SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER),
new SearchPropertyDefinition(FilesPlugin::FILEID_PROPERTYNAME, false, true, false, SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER),
];
}
@@ -222,7 +222,7 @@ class FileSearchBackend implements ISearchBackend {
case Operator::OPERATION_IS_COLLECTION:
return new SearchComparison('eq', 'mimetype', ICacheEntry::DIRECTORY_MIMETYPE);
default:
- throw new \InvalidArgumentException('Unsupported operation ' . $trimmedType. ' (' . $operator->type . ')');
+ throw new \InvalidArgumentException('Unsupported operation ' . $trimmedType . ' (' . $operator->type . ')');
}
}
@@ -244,6 +244,8 @@ class FileSearchBackend implements ISearchBackend {
return 'favorite';
case TagsPlugin::TAGS_PROPERTYNAME:
return 'tagname';
+ case FilesPlugin::INTERNAL_FILEID_PROPERTYNAME:
+ return 'fileid';
default:
throw new \InvalidArgumentException('Unsupported property for search or order: ' . $propertyName);
}
@@ -266,7 +268,7 @@ class FileSearchBackend implements ISearchBackend {
return 0 + $value;
}
$date = \DateTime::createFromFormat(\DateTime::ATOM, $value);
- return ($date instanceof \DateTime) ? $date->getTimestamp() : 0;
+ return ($date instanceof \DateTime) ? $date->getTimestamp() : 0;
default:
return $value;
}
diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php
index 2d20da72f51..6812caabd24 100644
--- a/lib/private/Files/Cache/QuerySearchHelper.php
+++ b/lib/private/Files/Cache/QuerySearchHelper.php
@@ -152,7 +152,8 @@ class QuerySearchHelper {
'name' => 'string',
'size' => 'integer',
'tagname' => 'string',
- 'favorite' => 'boolean'
+ 'favorite' => 'boolean',
+ 'fileid' => 'integer'
];
$comparisons = [
'mimetype' => ['eq', 'like'],
@@ -161,6 +162,7 @@ class QuerySearchHelper {
'size' => ['eq', 'gt', 'lt', 'gte', 'lte'],
'tagname' => ['eq', 'like'],
'favorite' => ['eq'],
+ 'fileid' => ['eq']
];
if (!isset($types[$operator->getField()])) {