<?php 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 Range extends HttpFilter { /** @throws FilterParameterValueIsNullException */ public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder { if (! isset($this->getHttpValue()['min']) && ! isset($this->getHttpValue()['max'])) { throw new FilterParameterValueIsNullException($this->field); } if (isset($this->getHttpValue()['min'])) { $queryBuilder->where( $this->getColumn() . '>= ' . $this->getHttpValue()['min'] ); } if (isset($this->getHttpValue()['max'])) { $queryBuilder->andWhere( $this->getColumn() . ' <= ' . $this->getHttpValue()['max'] ); } return $queryBuilder; } }