]> source.dussan.org Git - nextcloud-server.git/commitdiff
Introduce constants for builtin search filters 41511/head
authorBenjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Wed, 15 Nov 2023 16:24:37 +0000 (17:24 +0100)
committerBenjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Wed, 15 Nov 2023 16:24:37 +0000 (17:24 +0100)
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
lib/private/Search/SearchComposer.php
lib/public/Search/IFilter.php

index b92fdd250d8941930e53a7b6babdd601b6ded495..b20d47aa94e78b5198a942bb212f26a13e596ab6 100644 (file)
@@ -81,13 +81,13 @@ class SearchComposer {
                private LoggerInterface $logger
        ) {
                $this->commonFilters = [
-                       'term' => new FilterDefinition('term', FilterDefinition::TYPE_STRING),
-                       'since' => new FilterDefinition('since', FilterDefinition::TYPE_DATETIME),
-                       'until' => new FilterDefinition('until', FilterDefinition::TYPE_DATETIME),
-                       'title-only' => new FilterDefinition('title-only', FilterDefinition::TYPE_BOOL, false),
-                       'person' => new FilterDefinition('person', FilterDefinition::TYPE_PERSON),
-                       'places' => new FilterDefinition('places', FilterDefinition::TYPE_STRINGS, false),
-                       'provider' => new FilterDefinition('provider', FilterDefinition::TYPE_STRING, false),
+                       IFilter::BUILTIN_TERM => new FilterDefinition(IFilter::BUILTIN_TERM, FilterDefinition::TYPE_STRING),
+                       IFilter::BUILTIN_SINCE => new FilterDefinition(IFilter::BUILTIN_SINCE, FilterDefinition::TYPE_DATETIME),
+                       IFilter::BUILTIN_UNTIL => new FilterDefinition(IFilter::BUILTIN_UNTIL, FilterDefinition::TYPE_DATETIME),
+                       IFilter::BUILTIN_TITLE_ONLY => new FilterDefinition(IFilter::BUILTIN_TITLE_ONLY, FilterDefinition::TYPE_BOOL, false),
+                       IFilter::BUILTIN_PERSON => new FilterDefinition(IFilter::BUILTIN_PERSON, FilterDefinition::TYPE_PERSON),
+                       IFilter::BUILTIN_PLACES => new FilterDefinition(IFilter::BUILTIN_PLACES, FilterDefinition::TYPE_STRINGS, false),
+                       IFilter::BUILTIN_PROVIDER => new FilterDefinition(IFilter::BUILTIN_PROVIDER, FilterDefinition::TYPE_STRING, false),
                ];
        }
 
@@ -189,7 +189,7 @@ class SearchComposer {
                                        $triggers += $provider->getAlternateIds();
                                        $filters = $provider->getSupportedFilters();
                                } else {
-                                       $filters = ['term'];
+                                       $filters = [IFilter::BUILTIN_TERM];
                                }
 
                                return [
@@ -310,7 +310,7 @@ class SearchComposer {
                $provider = $this->providers[$providerId]['provider'];
                $supportedFilters = $provider instanceof IFilteringProvider
                        ? $provider->getSupportedFilters()
-                       : ['term'];
+                       : [IFilter::BUILTIN_TERM];
 
                return in_array($filterDefinition->name(), $supportedFilters, true);
        }
index c4e444e806b1f0737a0cfef523b0a18c4d93785e..6065622cb714ecd093760d08724700b60a1d6f52 100644 (file)
@@ -31,6 +31,21 @@ namespace OCP\Search;
  * @since 28.0.0
  */
 interface IFilter {
+       /** @since 28.0.0 */
+       public const BUILTIN_TERM = 'term';
+       /** @since 28.0.0 */
+       public const BUILTIN_SINCE = 'since';
+       /** @since 28.0.0 */
+       public const BUILTIN_UNTIL = 'until';
+       /** @since 28.0.0 */
+       public const BUILTIN_PERSON = 'person';
+       /** @since 28.0.0 */
+       public const BUILTIN_TITLE_ONLY = 'title-only';
+       /** @since 28.0.0 */
+       public const BUILTIN_PLACES = 'places';
+       /** @since 28.0.0 */
+       public const BUILTIN_PROVIDER = 'provider';
+
        /**
         * Get filter value
         *