1
0
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:
Franz Liedke
2015-05-28 23:46:56 +02:00
parent c76fbd03c7
commit 4bb83f060c
3 changed files with 29 additions and 13 deletions

View File

@@ -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()
); );

View File

@@ -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.
* *

View File

@@ -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();
} }