harden queries
This commit is contained in:
@@ -8,12 +8,15 @@ use App\Commerce\Dto\CommerceSearchQuery;
|
||||
|
||||
final class ShopwareCriteriaBuilder
|
||||
{
|
||||
public function build(CommerceSearchQuery $query, int $limit = 25): array
|
||||
public function build(
|
||||
CommerceSearchQuery $query,
|
||||
?int $limit = 25,
|
||||
?bool $grouping = true
|
||||
): array
|
||||
{
|
||||
$criteria = [
|
||||
'page' => 1,
|
||||
'limit' => max(1, $limit),
|
||||
"grouping" => ["parentId"],
|
||||
'total-count-mode' => 0,
|
||||
'includes' => [
|
||||
'product' => [
|
||||
@@ -54,6 +57,10 @@ final class ShopwareCriteriaBuilder
|
||||
],
|
||||
];
|
||||
|
||||
if ($grouping) {
|
||||
$criteria["grouping"] = ["parentId"];
|
||||
}
|
||||
|
||||
if ($query->searchText !== '') {
|
||||
$criteria['term'] = $query->searchText;
|
||||
}
|
||||
@@ -68,13 +75,6 @@ final class ShopwareCriteriaBuilder
|
||||
'type' => 'equals',
|
||||
'field' => 'available',
|
||||
'value' => true,
|
||||
],
|
||||
[
|
||||
'type' => 'range',
|
||||
'field' => 'price.gross',
|
||||
'parameters' => [
|
||||
'gt' => 0,
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user