From 6eb19f1e5d54d35a3a0fcc22e74fa8ad04269413 Mon Sep 17 00:00:00 2001
From: "a.shamavov" <a.shamavov@iqdev.digital>
Date: Mon, 3 Mar 2025 14:30:33 +0500
Subject: [PATCH] =?UTF-8?q?fix:=20=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?=
 =?UTF-8?q?=D1=82=D0=BA=D0=B0=20null=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82?=
 =?UTF-8?q?=D1=80=D0=B5=20Where?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../FilterParameterValueIsNullException.php       | 15 +++++++++++++++
 src/Filter/Where.php                              |  6 ++++++
 src/HttpFilter.php                                |  6 +++---
 3 files changed, 24 insertions(+), 3 deletions(-)
 create mode 100644 src/Exception/FilterParameterValueIsNullException.php

diff --git a/src/Exception/FilterParameterValueIsNullException.php b/src/Exception/FilterParameterValueIsNullException.php
new file mode 100644
index 0000000..237e74a
--- /dev/null
+++ b/src/Exception/FilterParameterValueIsNullException.php
@@ -0,0 +1,15 @@
+<?php
+
+declare(strict_types=1);
+
+namespace IQDEV\Packages\DoctrineHttpFilter\Exception;
+
+use Exception;
+
+class FilterParameterValueIsNullException extends Exception
+{
+    public function __construct(string $key)
+    {
+        parent::__construct('Filter parameter value of key [' . $key . '] is null.');
+    }
+}
diff --git a/src/Filter/Where.php b/src/Filter/Where.php
index cbfc9c7..5db21ae 100644
--- a/src/Filter/Where.php
+++ b/src/Filter/Where.php
@@ -5,16 +5,22 @@ declare(strict_types=1);
 namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
 
 use Doctrine\ORM\QueryBuilder;
+use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
 use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
 
 final class Where extends HttpFilter
 {
+    /** @throws FilterParameterValueIsNullException */
     public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
     {
         $queryBuilder->where(
             $this->getColumn() . ' = :' . $this->getParameterKey(),
         );
 
+        if ($this->getHttpValue() === null) {
+            throw new FilterParameterValueIsNullException($this->field);
+        }
+
         $queryBuilder->setParameter($this->getParameterKey(), $this->getHttpValue());
 
         return $queryBuilder;
diff --git a/src/HttpFilter.php b/src/HttpFilter.php
index 9f16b43..9078b25 100644
--- a/src/HttpFilter.php
+++ b/src/HttpFilter.php
@@ -15,7 +15,7 @@ abstract class HttpFilter
 
     public function __construct(
         protected string $tableAlias,
-        protected string $filed,
+        protected string $field,
         ?Request $request = null,
     ) {
         $this->request = $request ?? Request::createFromGlobals();
@@ -23,7 +23,7 @@ abstract class HttpFilter
 
     protected function getColumn(): string
     {
-        return $this->tableAlias . '.' . $this->filed;
+        return $this->tableAlias . '.' . $this->field;
     }
 
     protected function getHttpValue(): mixed
@@ -37,7 +37,7 @@ abstract class HttpFilter
             return null;
         }
 
-        return $filter[$this->filed] ?? null;
+        return $filter[$this->field] ?? null;
     }
 
     public function getParameterKey(): string
-- 
GitLab