Skip to content

Commit 324f7d2

Browse files
committed
fix: date filter
1 parent 814655e commit 324f7d2

File tree

1 file changed

+42
-13
lines changed

1 file changed

+42
-13
lines changed

src/Model/DefaultSearch/Query/DateFilter.php

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -98,24 +98,19 @@ public function isEmpty(): bool
9898

9999
public function getParams(): array
100100
{
101-
$params = [
102-
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
103-
];
101+
$params = ['format' => "yyyy-MM-dd'T'HH:mm:ssz"];
102+
104103
if ($this->onDate) {
105104
$params['gte'] = $this->getStartOfDay($this->onDate)->format(DateTimeInterface::ATOM);
106105
$params['lte'] = $this->getEndOfDay($this->onDate)->format(DateTimeInterface::ATOM);
107-
} else {
108-
if ($this->startDate) {
109-
$params['gte'] = $this->getStartOfDay($this->startDate)->format(DateTimeInterface::ATOM);
110-
}
111-
if ($this->endDate) {
112-
$params['lte'] = $this->getEndOfDay($this->endDate)->format(DateTimeInterface::ATOM);
113-
}
106+
107+
return [$this->field => $params];
114108
}
115109

116-
return [
117-
$this->field => $params,
118-
];
110+
$params = $this->addStartParams($params);
111+
$params = $this->addEndParams($params);
112+
113+
return [$this->field => $params];
119114
}
120115

121116
public function toArray(bool $withType = false): array
@@ -162,6 +157,40 @@ public function getOnDate(): Carbon
162157
return $this->onDate;
163158
}
164159

160+
private function addStartParams(array $params): array
161+
{
162+
if (!$this->startDate) {
163+
return $params;
164+
}
165+
166+
if ($this->endDate) {
167+
$params['gte'] = $this->getStartOfDay($this->startDate)->format(DateTimeInterface::ATOM);
168+
169+
return $params;
170+
}
171+
172+
$params['gte'] = $this->getEndOfDay($this->startDate)->format(DateTimeInterface::ATOM);
173+
174+
return $params;
175+
}
176+
177+
private function addEndParams(array $params): array
178+
{
179+
if (!$this->endDate) {
180+
return $params;
181+
}
182+
183+
if ($this->startDate) {
184+
$params['lte'] = $this->getEndOfDay($this->endDate)->format(DateTimeInterface::ATOM);
185+
186+
return $params;
187+
}
188+
189+
$params['lte'] = $this->getStartOfDay($this->endDate)->format(DateTimeInterface::ATOM);
190+
191+
return $params;
192+
}
193+
165194
private function getStartOfDay(Carbon $date): Carbon
166195
{
167196
if (!$this->roundToDay) {

0 commit comments

Comments
 (0)