* redirect to single awardee from the menu, if there is only one in a year
This commit is contained in:
parent
03f8116bd2
commit
622a4e1ebb
@ -9,6 +9,8 @@ use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use Zend\Diactoros\Response\HtmlResponse;
|
||||
use Zend\Diactoros\Response\RedirectResponse;
|
||||
use Zend\Expressive\Helper\UrlHelper;
|
||||
use Zend\Expressive\Template\TemplateRendererInterface;
|
||||
|
||||
class AwardeeHandler implements RequestHandlerInterface
|
||||
@ -19,18 +21,32 @@ class AwardeeHandler implements RequestHandlerInterface
|
||||
/** @var AwardeeManager */
|
||||
private $awardeeManager;
|
||||
|
||||
/** @var UrlHelper */
|
||||
private $urlHelper;
|
||||
|
||||
public function __construct(
|
||||
TemplateRendererInterface $template,
|
||||
AwardeeManager $awardeeManager
|
||||
) {
|
||||
AwardeeManager $awardeeManager,
|
||||
UrlHelper $urlHelper
|
||||
)
|
||||
{
|
||||
$this->template = $template;
|
||||
$this->awardeeManager = $awardeeManager;
|
||||
$this->urlHelper = $urlHelper;
|
||||
}
|
||||
|
||||
public function handle(ServerRequestInterface $request) : ResponseInterface
|
||||
public function handle(ServerRequestInterface $request): ResponseInterface
|
||||
{
|
||||
$year = $request->getAttribute('year');
|
||||
$awardees = $this->awardeeManager->getJudgesByYear((int)$year);
|
||||
|
||||
if (count($awardees) === 1) {
|
||||
$url = $this->urlHelper->generate('awardee', [
|
||||
'slug' => $awardees[0]->getSlug(),
|
||||
]);
|
||||
return new RedirectResponse($url);
|
||||
}
|
||||
|
||||
return new HtmlResponse($this->template->render("app::awardees", [
|
||||
'year' => $year,
|
||||
'awardees' => $awardees,
|
||||
|
||||
@ -7,6 +7,7 @@ namespace App\Handler;
|
||||
use App\Service\AwardeeManager;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use Zend\Expressive\Helper\UrlHelper;
|
||||
use Zend\Expressive\Template\TemplateRendererInterface;
|
||||
|
||||
class AwardeeHandlerFactory
|
||||
@ -15,6 +16,7 @@ class AwardeeHandlerFactory
|
||||
{
|
||||
$template = $container->get(TemplateRendererInterface::class);
|
||||
$awardeeManager = $container->get(AwardeeManager::class);
|
||||
return new AwardeeHandler($template, $awardeeManager);
|
||||
$urlHelper = $container->get(UrlHelper::class);
|
||||
return new AwardeeHandler($template, $awardeeManager, $urlHelper);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user