feat: filtering of custom destinations by hotel
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Service\Common;
|
||||
|
||||
use App\Model\AbstractFilterDto;
|
||||
use App\Model\DestinationFilterDto;
|
||||
|
||||
class DestinationFilterHandler extends AbstractFilterHandler
|
||||
{
|
||||
protected string $namespace = 'filter:destination';
|
||||
protected string $modelClass = DestinationFilterDto::class;
|
||||
|
||||
public function getFilterSettings(): DestinationFilterDto
|
||||
{
|
||||
$filterDto = new $this->modelClass();
|
||||
|
||||
if (null === $data = $this->getSession()->get($this->namespace)) {
|
||||
return $filterDto;
|
||||
}
|
||||
|
||||
if (isset($data['hotels']) && 0 < count($data['hotels'])) {
|
||||
$filterDto->setHotels($data['hotels']);
|
||||
}
|
||||
|
||||
return $filterDto;
|
||||
}
|
||||
|
||||
protected function saveFilterSettings(AbstractFilterDto $filterDto): void
|
||||
{
|
||||
/** @var DestinationFilterDto $filterDto */
|
||||
$this->getSession()->set($this->namespace, [
|
||||
'hotels' => $filterDto->getHotels(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user