Skip to content

Commit 1bfb7dd

Browse files
committed
Merge branch '1.3' into 2.1
2 parents f1ca3ca + c035f01 commit 1bfb7dd

File tree

3 files changed

+48
-19
lines changed

3 files changed

+48
-19
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) {

tests/Unit/Model/DefaultSearch/Query/DateFilterTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public function testToArray(): void
5555
'range' => [
5656
'datefield' => [
5757
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
58-
'gte' => '2000-01-01T00:00:00+00:00',
58+
'gte' => '2000-01-01T23:59:59+00:00',
5959
],
6060
],
6161
], $dateFilter->toArray(true));
@@ -66,7 +66,7 @@ public function testToArray(): void
6666
'range' => [
6767
'datefield' => [
6868
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
69-
'lte' => '2000-01-01T23:59:59+00:00',
69+
'lte' => '2000-01-01T00:00:00+00:00',
7070
],
7171
],
7272
], $dateFilter->toArray(true));
@@ -108,7 +108,7 @@ public function testGetParams(): void
108108
self::assertSame([
109109
'datefield' => [
110110
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
111-
'gte' => '2000-01-01T00:00:00+00:00',
111+
'gte' => '2000-01-01T23:59:59+00:00',
112112
],
113113
], $dateFilter->getParams());
114114

@@ -117,7 +117,7 @@ public function testGetParams(): void
117117
self::assertSame([
118118
'datefield' => [
119119
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
120-
'lte' => '2000-01-01T23:59:59+00:00',
120+
'lte' => '2000-01-01T00:00:00+00:00',
121121
],
122122
], $dateFilter->getParams());
123123

tests/Unit/SearchIndexAdapter/Asset/FieldDefinitionAdapter/DateAdapterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public function testApplySearchFilter()
123123
'range' => [
124124
'standard_fields.test.en' => [
125125
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
126-
'gte' => '2000-01-01T00:00:00+00:00',
126+
'gte' => '2000-01-01T23:59:59+00:00',
127127
],
128128
],
129129
],
@@ -138,7 +138,7 @@ public function testApplySearchFilter()
138138
'range' => [
139139
'standard_fields.test.en' => [
140140
'format' => "yyyy-MM-dd'T'HH:mm:ssz",
141-
'lte' => '2000-01-01T23:59:59+00:00',
141+
'lte' => '2000-01-01T00:00:00+00:00',
142142
],
143143
],
144144
],

0 commit comments

Comments
 (0)