Skip to content

Commit

Permalink
NGSTACK-822: Fix PHPStan issues
Browse files Browse the repository at this point in the history
  • Loading branch information
emodric committed Sep 4, 2024
1 parent d0a1408 commit 2967a3c
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion bundle/QueryType/SearchQueryType.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Ibexa\Contracts\Core\Repository\Values\Content\LocationQuery;
use Ibexa\Contracts\Core\Repository\Values\Content\Query;
use Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause;
use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion;
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
use Ibexa\Core\QueryType\OptionsResolverBasedQueryType;
Expand Down Expand Up @@ -34,26 +35,31 @@ public static function getName(): string
protected function configureOptions(OptionsResolver $optionsResolver): void
{
$optionsResolver->setRequired(['search_text', 'content_types', 'subtree', 'sort', 'order']);

$optionsResolver->setAllowedTypes('search_text', 'string');
$optionsResolver->setAllowedTypes('content_types', 'string[]');
$optionsResolver->setAllowedTypes('sort', 'string[]');
$optionsResolver->setAllowedTypes('subtree', ['int', 'string']);

$optionsResolver->setAllowedValues(
'search_text',
static fn (string $searchText): bool => trim($searchText) !== '',
);

$optionsResolver->setAllowedValues(
'sort',
/** @var string[] $classNames */
fn (array $classNames): bool => $this->validateSortConfig($classNames),
);

$optionsResolver->setAllowedValues(
'order',
static fn (string $order): bool => in_array($order, [Query::SORT_ASC, Query::SORT_DESC], true),
);

$optionsResolver->setDefault('content_types', $this->configResolver->getParameter('search.content_types', 'ngsite'));
$optionsResolver->setDefault('subtree', $this->site->getSettings()->rootLocationId);
$optionsResolver->setDefault('sort', [Query\SortClause\DatePublished::class]);
$optionsResolver->setDefault('sort', [SortClause\DatePublished::class]);
$optionsResolver->setDefault('order', Query::SORT_DESC);
}

Expand All @@ -69,13 +75,18 @@ protected function doGetQuery(array $parameters): Query
if (count($parameters['content_types']) > 0) {
$criteria[] = new Criterion\ContentTypeIdentifier($parameters['content_types']);
}

$query = new LocationQuery();
$query->query = new FullText(trim($parameters['search_text']));
$query->filter = new Criterion\LogicalAnd($criteria);

/** @var \Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause[] $sortClauses */
$sortClauses = [];

foreach ($parameters['sort'] as $className) {
$sortClauses[] = new $className($parameters['order']);
}

$query->sortClauses = $sortClauses;

Check failure on line 90 in bundle/QueryType/SearchQueryType.php

View workflow job for this annotation

GitHub Actions / phpstan

Property Ibexa\Contracts\Core\Repository\Values\Content\Query::$sortClauses (array<Ibexa\Contracts\Core\Repository\Values\Content\Query\SortClause>) does not accept array<object>.

return $query;
Expand Down

0 comments on commit 2967a3c

Please sign in to comment.