feat: filter for feedbacks, code cleanup

This commit is contained in:
Björn Fromme
2024-10-28 16:19:45 +01:00
parent 49faa1eb25
commit a8ccdc8775
11 changed files with 297 additions and 27 deletions
@@ -0,0 +1,46 @@
<?php
namespace App\Service\Common;
use App\Model\AbstractFilterDto;
use App\Model\FeedbackFilterDto;
class FeedbackFilterHandler extends AbstractFilterHandler
{
protected string $namespace = 'filter:feedback';
public function getFilterSettings(): FeedbackFilterDto
{
if (null === $data = $this->getSession()->get($this->namespace)) {
return new FeedbackFilterDto();
}
$filterDto = new FeedbackFilterDto();
if (isset($data['name'])) {
$filterDto->setName($data['name']);
}
if (isset($data['date_from'])) {
$filterDto->setDateFrom($data['date_from']);
}
if (isset($data['date_to'])) {
$filterDto->setDateTo($data['date_to']);
}
if (isset($data['average_rating'])) {
$filterDto->setAverageRating($data['average_rating']);
}
return $filterDto;
}
protected function saveFilterSettings(AbstractFilterDto $filterDto): void
{
/** @var FeedbackFilterDto $filterDto */
$this->getSession()->set($this->namespace, [
'name' => $filterDto->getName(),
'date_from' => $filterDto->getDateFrom(),
'date_to' => $filterDto->getDateTo(),
'average_rating' => $filterDto->getAverageRating(),
]);
}
}