Defined new options for new redirect configuration

This commit is contained in:
Alejandro Celaya
2019-11-02 17:23:21 +01:00
parent 8b9663aea0
commit 24c3a3e84c
9 changed files with 85 additions and 58 deletions

View File

@@ -18,18 +18,18 @@ class RedirectAction extends AbstractTrackingAction
{
use ErrorResponseBuilderTrait;
/** @var Options\NotFoundShortUrlOptions */
private $notFoundOptions;
/** @var Options\NotFoundRedirectOptions */
private $redirectOptions;
public function __construct(
UrlShortenerInterface $urlShortener,
VisitsTrackerInterface $visitTracker,
Options\AppOptions $appOptions,
Options\NotFoundShortUrlOptions $notFoundOptions,
Options\NotFoundRedirectOptions $redirectOptions,
?LoggerInterface $logger = null
) {
parent::__construct($urlShortener, $visitTracker, $appOptions, $logger);
$this->notFoundOptions = $notFoundOptions;
$this->redirectOptions = $redirectOptions;
}
protected function createSuccessResp(string $longUrl): Response
@@ -43,8 +43,8 @@ class RedirectAction extends AbstractTrackingAction
ServerRequestInterface $request,
RequestHandlerInterface $handler
): Response {
if ($this->notFoundOptions->isRedirectionEnabled()) {
return new RedirectResponse($this->notFoundOptions->getRedirectTo());
if ($this->redirectOptions->hasInvalidShortUrlRedirect()) {
return new RedirectResponse($this->redirectOptions->getInvalidShortUrlRedirect());
}
return $this->buildErrorResponse($request, $handler);