mirror of
https://github.com/shlinkio/shlink.git
synced 2026-03-06 23:33:13 +08:00
Removed more functional-php usages
This commit is contained in:
@@ -13,7 +13,6 @@ use Shlinkio\Shlink\Core\ErrorHandler\Model\NotFoundType;
|
||||
use Shlinkio\Shlink\Core\Util\RedirectResponseHelperInterface;
|
||||
|
||||
use function Functional\compose;
|
||||
use function Functional\id;
|
||||
use function str_replace;
|
||||
use function urlencode;
|
||||
|
||||
@@ -23,8 +22,8 @@ class NotFoundRedirectResolver implements NotFoundRedirectResolverInterface
|
||||
private const ORIGINAL_PATH_PLACEHOLDER = '{ORIGINAL_PATH}';
|
||||
|
||||
public function __construct(
|
||||
private RedirectResponseHelperInterface $redirectResponseHelper,
|
||||
private LoggerInterface $logger,
|
||||
private readonly RedirectResponseHelperInterface $redirectResponseHelper,
|
||||
private readonly LoggerInterface $logger,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -73,7 +72,7 @@ class NotFoundRedirectResolver implements NotFoundRedirectResolverInterface
|
||||
$replacePlaceholderForPattern(self::ORIGINAL_PATH_PLACEHOLDER, $path, $modifier),
|
||||
);
|
||||
$replacePlaceholdersInPath = compose(
|
||||
$replacePlaceholders(id(...)),
|
||||
$replacePlaceholders(static fn (mixed $v) => $v),
|
||||
static fn (?string $path) => $path === null ? null : str_replace('//', '/', $path),
|
||||
);
|
||||
$replacePlaceholdersInQuery = $replacePlaceholders(urlencode(...));
|
||||
|
||||
@@ -9,25 +9,34 @@ use Mezzio\Router\Route;
|
||||
use Shlinkio\Shlink\Core\Action\RedirectAction;
|
||||
use Shlinkio\Shlink\Core\Util\RedirectStatus;
|
||||
|
||||
use function array_values;
|
||||
use function count;
|
||||
use function Functional\partition;
|
||||
|
||||
use const Shlinkio\Shlink\DEFAULT_REDIRECT_STATUS_CODE;
|
||||
|
||||
/**
|
||||
* Sets the appropriate allowed methods on the redirect route, based on the redirect status code that was configured.
|
||||
* * For "legacy" status codes (301 and 302) the redirect URL will work only on GET method.
|
||||
* * For other status codes (307 and 308) the redirect URL will work on any method.
|
||||
*/
|
||||
class ShortUrlMethodsProcessor
|
||||
{
|
||||
public function __invoke(array $config): array
|
||||
{
|
||||
[$redirectRoutes, $rest] = partition(
|
||||
$config['routes'] ?? [],
|
||||
static fn (array $route) => $route['name'] === RedirectAction::class,
|
||||
);
|
||||
if (count($redirectRoutes) === 0) {
|
||||
$allRoutes = $config['routes'] ?? [];
|
||||
$redirectRoute = null;
|
||||
$rest = [];
|
||||
|
||||
// Get default route from routes array
|
||||
foreach ($allRoutes as $route) {
|
||||
if ($route['name'] === RedirectAction::class) {
|
||||
$redirectRoute ??= $route;
|
||||
} else {
|
||||
$rest[] = $route;
|
||||
}
|
||||
}
|
||||
|
||||
if ($redirectRoute === null) {
|
||||
return $config;
|
||||
}
|
||||
|
||||
[$redirectRoute] = array_values($redirectRoutes);
|
||||
$redirectStatus = RedirectStatus::tryFrom(
|
||||
$config['redirects']['redirect_status_code'] ?? 0,
|
||||
) ?? DEFAULT_REDIRECT_STATUS_CODE;
|
||||
|
||||
Reference in New Issue
Block a user