mirror of
https://github.com/shlinkio/shlink.git
synced 2024-11-27 16:26:37 +03:00
Created middleware to drop domain from query when it is the default one
This commit is contained in:
parent
fe652c67f4
commit
c07c37f7bd
3 changed files with 44 additions and 11 deletions
|
@ -37,6 +37,7 @@ return [
|
|||
Middleware\BodyParserMiddleware::class => InvokableFactory::class,
|
||||
Middleware\CrossDomainMiddleware::class => InvokableFactory::class,
|
||||
Middleware\ShortUrl\CreateShortUrlContentNegotiationMiddleware::class => InvokableFactory::class,
|
||||
Middleware\ShortUrl\DropDefaultDomainFromQueryMiddleware::class => ConfigAbstractFactory::class,
|
||||
],
|
||||
],
|
||||
|
||||
|
@ -72,6 +73,8 @@ return [
|
|||
Action\Tag\DeleteTagsAction::class => [Service\Tag\TagService::class, LoggerInterface::class],
|
||||
Action\Tag\CreateTagsAction::class => [Service\Tag\TagService::class, LoggerInterface::class],
|
||||
Action\Tag\UpdateTagAction::class => [Service\Tag\TagService::class, LoggerInterface::class],
|
||||
|
||||
Middleware\ShortUrl\DropDefaultDomainFromQueryMiddleware::class => ['config.url_shortener.domain.hostname'],
|
||||
],
|
||||
|
||||
];
|
||||
|
|
|
@ -4,26 +4,25 @@ declare(strict_types=1);
|
|||
|
||||
namespace Shlinkio\Shlink\Rest;
|
||||
|
||||
$contentNegotiationMiddleware = [Middleware\ShortUrl\CreateShortUrlContentNegotiationMiddleware::class];
|
||||
$dropDomainMiddleware = [Middleware\ShortUrl\DropDefaultDomainFromQueryMiddleware::class];
|
||||
|
||||
return [
|
||||
|
||||
'routes' => [
|
||||
Action\HealthAction::getRouteDef(),
|
||||
|
||||
// Short codes
|
||||
Action\ShortUrl\CreateShortUrlAction::getRouteDef([
|
||||
Middleware\ShortUrl\CreateShortUrlContentNegotiationMiddleware::class,
|
||||
]),
|
||||
Action\ShortUrl\SingleStepCreateShortUrlAction::getRouteDef([
|
||||
Middleware\ShortUrl\CreateShortUrlContentNegotiationMiddleware::class,
|
||||
]),
|
||||
Action\ShortUrl\EditShortUrlAction::getRouteDef(),
|
||||
Action\ShortUrl\DeleteShortUrlAction::getRouteDef(),
|
||||
Action\ShortUrl\ResolveShortUrlAction::getRouteDef(),
|
||||
Action\ShortUrl\CreateShortUrlAction::getRouteDef($contentNegotiationMiddleware),
|
||||
Action\ShortUrl\SingleStepCreateShortUrlAction::getRouteDef($contentNegotiationMiddleware),
|
||||
Action\ShortUrl\EditShortUrlAction::getRouteDef($dropDomainMiddleware),
|
||||
Action\ShortUrl\DeleteShortUrlAction::getRouteDef($dropDomainMiddleware),
|
||||
Action\ShortUrl\ResolveShortUrlAction::getRouteDef($dropDomainMiddleware),
|
||||
Action\ShortUrl\ListShortUrlsAction::getRouteDef(),
|
||||
Action\ShortUrl\EditShortUrlTagsAction::getRouteDef(),
|
||||
Action\ShortUrl\EditShortUrlTagsAction::getRouteDef($dropDomainMiddleware),
|
||||
|
||||
// Visits
|
||||
Action\Visit\GetVisitsAction::getRouteDef(),
|
||||
Action\Visit\GetVisitsAction::getRouteDef($dropDomainMiddleware),
|
||||
|
||||
// Tags
|
||||
Action\Tag\ListTagsAction::getRouteDef(),
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Shlinkio\Shlink\Rest\Middleware\ShortUrl;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
|
||||
class DropDefaultDomainFromQueryMiddleware implements MiddlewareInterface
|
||||
{
|
||||
private string $defaultDomain;
|
||||
|
||||
public function __construct(string $defaultDomain)
|
||||
{
|
||||
$this->defaultDomain = $defaultDomain;
|
||||
}
|
||||
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$query = $request->getQueryParams();
|
||||
if (isset($query['domain']) && $query['domain'] === $this->defaultDomain) {
|
||||
unset($query['domain']);
|
||||
$request = $request->withQueryParams($query);
|
||||
}
|
||||
|
||||
return $handler->handle($request);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue