mirror of
https://github.com/flarum/core.git
synced 2025-07-25 10:41:24 +02:00
For now, inject URL generator instead of providing helper method.
This commit is contained in:
@@ -4,6 +4,7 @@ use Flarum\Core\Search\Discussions\DiscussionSearchCriteria;
|
|||||||
use Flarum\Core\Search\Discussions\DiscussionSearcher;
|
use Flarum\Core\Search\Discussions\DiscussionSearcher;
|
||||||
use Flarum\Api\Actions\SerializeCollectionAction;
|
use Flarum\Api\Actions\SerializeCollectionAction;
|
||||||
use Flarum\Api\JsonApiRequest;
|
use Flarum\Api\JsonApiRequest;
|
||||||
|
use Flarum\Http\UrlGeneratorInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
class IndexAction extends SerializeCollectionAction
|
class IndexAction extends SerializeCollectionAction
|
||||||
@@ -15,6 +16,13 @@ class IndexAction extends SerializeCollectionAction
|
|||||||
*/
|
*/
|
||||||
protected $searcher;
|
protected $searcher;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URL generator.
|
||||||
|
*
|
||||||
|
* @var \Flarum\Http\UrlGeneratorInterface
|
||||||
|
*/
|
||||||
|
protected $url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name of the serializer class to output results with.
|
* The name of the serializer class to output results with.
|
||||||
*
|
*
|
||||||
@@ -47,10 +55,12 @@ class IndexAction extends SerializeCollectionAction
|
|||||||
* Instantiate the action.
|
* Instantiate the action.
|
||||||
*
|
*
|
||||||
* @param \Flarum\Core\Search\Discussions\DiscussionSearcher $searcher
|
* @param \Flarum\Core\Search\Discussions\DiscussionSearcher $searcher
|
||||||
|
* @param \Flarum\Http\UrlGeneratorInterface $url
|
||||||
*/
|
*/
|
||||||
public function __construct(DiscussionSearcher $searcher)
|
public function __construct(DiscussionSearcher $searcher, UrlGeneratorInterface $url)
|
||||||
{
|
{
|
||||||
$this->searcher = $searcher;
|
$this->searcher = $searcher;
|
||||||
|
$this->url = $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,7 +89,7 @@ class IndexAction extends SerializeCollectionAction
|
|||||||
static::addPaginationLinks(
|
static::addPaginationLinks(
|
||||||
$document,
|
$document,
|
||||||
$request,
|
$request,
|
||||||
route('flarum.api.discussions.index'),
|
$this->url->toRoute('flarum.api.discussions.index'),
|
||||||
$total ?: $results->areMoreResults()
|
$total ?: $results->areMoreResults()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -46,14 +46,6 @@ abstract class JsonApiAction implements ActionInterface
|
|||||||
return new Response($data, $status);
|
return new Response($data, $status);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function route($name, array $parameters = [])
|
|
||||||
{
|
|
||||||
/** @var \Flarum\Http\UrlGeneratorInterface $generator */
|
|
||||||
$generator = app('Flarum\Http\UrlGeneratorInterface');
|
|
||||||
|
|
||||||
return $generator->toRoute($name, $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle an API request and return an API response.
|
* Handle an API request and return an API response.
|
||||||
*
|
*
|
||||||
|
@@ -4,6 +4,7 @@ use Flarum\Core\Search\Users\UserSearchCriteria;
|
|||||||
use Flarum\Core\Search\Users\UserSearcher;
|
use Flarum\Core\Search\Users\UserSearcher;
|
||||||
use Flarum\Api\Actions\SerializeCollectionAction;
|
use Flarum\Api\Actions\SerializeCollectionAction;
|
||||||
use Flarum\Api\JsonApiRequest;
|
use Flarum\Api\JsonApiRequest;
|
||||||
|
use Flarum\Http\UrlGeneratorInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
class IndexAction extends SerializeCollectionAction
|
class IndexAction extends SerializeCollectionAction
|
||||||
@@ -15,14 +16,23 @@ class IndexAction extends SerializeCollectionAction
|
|||||||
*/
|
*/
|
||||||
protected $searcher;
|
protected $searcher;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URL generator.
|
||||||
|
*
|
||||||
|
* @var \Flarum\Http\UrlGeneratorInterface
|
||||||
|
*/
|
||||||
|
protected $url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiate the action.
|
* Instantiate the action.
|
||||||
*
|
*
|
||||||
* @param \Flarum\Core\Search\Users\UserSearcher $searcher
|
* @param \Flarum\Core\Search\Users\UserSearcher $searcher
|
||||||
|
* @param \Flarum\Http\UrlGeneratorInterface $url
|
||||||
*/
|
*/
|
||||||
public function __construct(UserSearcher $searcher)
|
public function __construct(UserSearcher $searcher, UrlGeneratorInterface $url)
|
||||||
{
|
{
|
||||||
$this->searcher = $searcher;
|
$this->searcher = $searcher;
|
||||||
|
$this->url = $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,8 +81,12 @@ class IndexAction extends SerializeCollectionAction
|
|||||||
$document->addMeta('total', $total);
|
$document->addMeta('total', $total);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Add route() method!
|
static::addPaginationLinks(
|
||||||
static::addPaginationLinks($document, $request, 'flarum.api.users.index', $total ?: $results->areMoreResults());
|
$document,
|
||||||
|
$request,
|
||||||
|
$this->url->toRoute('flarum.api.users.index'),
|
||||||
|
$total ?: $results->areMoreResults()
|
||||||
|
);
|
||||||
|
|
||||||
return $results->getUsers();
|
return $results->getUsers();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user