mirror of
https://github.com/flarum/core.git
synced 2025-10-14 00:15:51 +02:00
Query Namespace (#2645)
Move shared classes in search and filter namespaces to a new query namespace
This commit is contained in:
committed by
GitHub
parent
e37fdef709
commit
a9526917b8
@@ -11,9 +11,9 @@ namespace Flarum\Filter;
|
||||
|
||||
use Flarum\Event\ConfigurePostsQuery;
|
||||
use Flarum\Post\Filter\PostFilterer;
|
||||
use Flarum\Search\ApplySearchParametersTrait;
|
||||
use Flarum\Search\SearchCriteria;
|
||||
use Flarum\Search\SearchResults;
|
||||
use Flarum\Query\ApplyQueryParametersTrait;
|
||||
use Flarum\Query\QueryCriteria;
|
||||
use Flarum\Query\QueryResults;
|
||||
use Flarum\User\User;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Support\Arr;
|
||||
@@ -21,7 +21,7 @@ use InvalidArgumentException;
|
||||
|
||||
abstract class AbstractFilterer
|
||||
{
|
||||
use ApplySearchParametersTrait;
|
||||
use ApplyQueryParametersTrait;
|
||||
|
||||
protected $filters;
|
||||
|
||||
@@ -40,14 +40,14 @@ abstract class AbstractFilterer
|
||||
abstract protected function getQuery(User $actor): Builder;
|
||||
|
||||
/**
|
||||
* @param SearchCriteria $criteria
|
||||
* @param QueryCriteria $criteria
|
||||
* @param mixed|null $limit
|
||||
* @param int $offset
|
||||
*
|
||||
* @return SearchResults
|
||||
* @return QueryResults
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function filter(SearchCriteria $criteria, int $limit = null, int $offset = 0): SearchResults
|
||||
public function filter(QueryCriteria $criteria, int $limit = null, int $offset = 0): QueryResults
|
||||
{
|
||||
$actor = $criteria->actor;
|
||||
|
||||
@@ -89,6 +89,6 @@ abstract class AbstractFilterer
|
||||
$results->pop();
|
||||
}
|
||||
|
||||
return new SearchResults($results, $areMoreResults);
|
||||
return new QueryResults($results, $areMoreResults);
|
||||
}
|
||||
}
|
||||
|
@@ -9,14 +9,14 @@
|
||||
|
||||
namespace Flarum\Filter;
|
||||
|
||||
use Flarum\Discussion\Filter as DiscussionFilter;
|
||||
use Flarum\Discussion\Filter\DiscussionFilterer;
|
||||
use Flarum\Discussion\Query as DiscussionQuery;
|
||||
use Flarum\Foundation\AbstractServiceProvider;
|
||||
use Flarum\Foundation\ContainerUtil;
|
||||
use Flarum\Post\Filter as PostFilter;
|
||||
use Flarum\Post\Filter\PostFilterer;
|
||||
use Flarum\User\Filter as UserFilter;
|
||||
use Flarum\User\Filter\UserFilterer;
|
||||
use Flarum\User\Query as UserQuery;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class FilterServiceProvider extends AbstractServiceProvider
|
||||
@@ -31,14 +31,14 @@ class FilterServiceProvider extends AbstractServiceProvider
|
||||
$this->app->singleton('flarum.filter.filters', function () {
|
||||
return [
|
||||
DiscussionFilterer::class => [
|
||||
DiscussionFilter\AuthorFilterGambit::class,
|
||||
DiscussionFilter\CreatedFilterGambit::class,
|
||||
DiscussionFilter\HiddenFilterGambit::class,
|
||||
DiscussionFilter\UnreadFilterGambit::class,
|
||||
DiscussionQuery\AuthorFilterGambit::class,
|
||||
DiscussionQuery\CreatedFilterGambit::class,
|
||||
DiscussionQuery\HiddenFilterGambit::class,
|
||||
DiscussionQuery\UnreadFilterGambit::class,
|
||||
],
|
||||
UserFilterer::class => [
|
||||
UserFilter\EmailFilterGambit::class,
|
||||
UserFilter\GroupFilterGambit::class,
|
||||
UserQuery\EmailFilterGambit::class,
|
||||
UserQuery\GroupFilterGambit::class,
|
||||
],
|
||||
PostFilterer::class => [
|
||||
PostFilter\AuthorFilter::class,
|
||||
|
@@ -9,79 +9,8 @@
|
||||
|
||||
namespace Flarum\Filter;
|
||||
|
||||
use Flarum\User\User;
|
||||
use Illuminate\Database\Query\Builder;
|
||||
use Flarum\Query\AbstractQueryState;
|
||||
|
||||
class FilterState
|
||||
class FilterState extends AbstractQueryState
|
||||
{
|
||||
/**
|
||||
* @var Builder
|
||||
*/
|
||||
protected $query;
|
||||
|
||||
/**
|
||||
* @var User
|
||||
*/
|
||||
protected $actor;
|
||||
|
||||
/**
|
||||
* @var mixed
|
||||
*/
|
||||
protected $defaultSort = [];
|
||||
|
||||
/**
|
||||
* @param Builder $query
|
||||
* @param User $actor
|
||||
*/
|
||||
public function __construct(Builder $query, User $actor, $defaultSort = [])
|
||||
{
|
||||
$this->query = $query;
|
||||
$this->actor = $actor;
|
||||
$this->defaultSort = $defaultSort;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the query builder for the search results query.
|
||||
*
|
||||
* @return Builder
|
||||
*/
|
||||
public function getQuery()
|
||||
{
|
||||
return $this->query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the user who is performing the search.
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function getActor()
|
||||
{
|
||||
return $this->actor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default sort order for the search.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getDefaultSort()
|
||||
{
|
||||
return $this->defaultSort;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default sort order for the search. This will only be applied if
|
||||
* a sort order has not been specified in the search criteria.
|
||||
*
|
||||
* @param mixed $defaultSort An array of sort-order pairs, where the column
|
||||
* is the key, and the order is the value. The order may be 'asc',
|
||||
* 'desc', or an array of IDs to order by.
|
||||
* Alternatively, a callable may be used.
|
||||
* @return mixed
|
||||
*/
|
||||
public function setDefaultSort($defaultSort)
|
||||
{
|
||||
$this->defaultSort = $defaultSort;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user