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 76114f2979
commit 8a57922833
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\Api\Actions\SerializeCollectionAction;
use Flarum\Api\JsonApiRequest;
use Flarum\Http\UrlGeneratorInterface;
use Tobscure\JsonApi\Document;
class IndexAction extends SerializeCollectionAction
@ -15,6 +16,13 @@ class IndexAction extends SerializeCollectionAction
*/
protected $searcher;
/**
* The URL generator.
*
* @var \Flarum\Http\UrlGeneratorInterface
*/
protected $url;
/**
* The name of the serializer class to output results with.
*
@ -47,10 +55,12 @@ class IndexAction extends SerializeCollectionAction
* Instantiate the action.
*
* @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->url = $url;
}
/**
@ -79,7 +89,7 @@ class IndexAction extends SerializeCollectionAction
static::addPaginationLinks(
$document,
$request,
route('flarum.api.discussions.index'),
$this->url->toRoute('flarum.api.discussions.index'),
$total ?: $results->areMoreResults()
);

View File

@ -46,14 +46,6 @@ abstract class JsonApiAction implements ActionInterface
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.
*

View File

@ -4,6 +4,7 @@ use Flarum\Core\Search\Users\UserSearchCriteria;
use Flarum\Core\Search\Users\UserSearcher;
use Flarum\Api\Actions\SerializeCollectionAction;
use Flarum\Api\JsonApiRequest;
use Flarum\Http\UrlGeneratorInterface;
use Tobscure\JsonApi\Document;
class IndexAction extends SerializeCollectionAction
@ -15,14 +16,23 @@ class IndexAction extends SerializeCollectionAction
*/
protected $searcher;
/**
* The URL generator.
*
* @var \Flarum\Http\UrlGeneratorInterface
*/
protected $url;
/**
* Instantiate the action.
*
* @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->url = $url;
}
/**
@ -71,8 +81,12 @@ class IndexAction extends SerializeCollectionAction
$document->addMeta('total', $total);
}
// TODO: Add route() method!
static::addPaginationLinks($document, $request, 'flarum.api.users.index', $total ?: $results->areMoreResults());
static::addPaginationLinks(
$document,
$request,
$this->url->toRoute('flarum.api.users.index'),
$total ?: $results->areMoreResults()
);
return $results->getUsers();
}