Skip to content

Commit edf199b

Browse files
committed
core,database_logic
1 parent 79b1a14 commit edf199b

File tree

5 files changed

+29
-16
lines changed

5 files changed

+29
-16
lines changed

stac_fastapi/core/stac_fastapi/core/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,7 @@ async def post_search(
822822

823823
datetime_parsed = format_datetime_range(date_str=search_request.datetime)
824824
try:
825-
search = self.database.apply_datetime_filter(
825+
search, _ = self.database.apply_datetime_filter(
826826
search=search, datetime=datetime_parsed
827827
)
828828
except (ValueError, TypeError) as e:

stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/database_logic.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,9 @@ def apply_collections_filter(search: Search, collection_ids: List[str]):
439439
return search.filter("terms", collection=collection_ids)
440440

441441
@staticmethod
442-
def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
442+
def apply_datetime_filter(
443+
search: Search, datetime: Optional[str]
444+
) -> Tuple[Search, Dict[str, Optional[str]]]:
443445
"""Apply a filter to search on datetime, start_datetime, and end_datetime fields.
444446
445447
Args:
@@ -449,15 +451,15 @@ def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
449451
Returns:
450452
The filtered search object.
451453
"""
452-
datetime_search = return_date(datetime)
453-
454454
# USE_DATETIME env var
455455
# True: Search by datetime, if null search by start/end datetime
456456
# False: Always search only by start/end datetime
457457
USE_DATETIME = get_bool_env("USE_DATETIME", default=True)
458458

459+
datetime_search = return_date(datetime)
460+
459461
if not datetime_search:
460-
return search
462+
return search, datetime_search
461463

462464
if USE_DATETIME:
463465
if "eq" in datetime_search:
@@ -534,7 +536,10 @@ def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
534536
),
535537
]
536538

537-
return search.query(Q("bool", should=should, minimum_should_match=1))
539+
return (
540+
search.query(Q("bool", should=should, minimum_should_match=1)),
541+
datetime_search,
542+
)
538543
else:
539544
if "eq" in datetime_search:
540545
filter_query = Q(
@@ -568,7 +573,7 @@ def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
568573
),
569574
],
570575
)
571-
return search.query(filter_query)
576+
return search.query(filter_query), datetime_search
572577

573578
@staticmethod
574579
def apply_bbox_filter(search: Search, bbox: List):

stac_fastapi/opensearch/stac_fastapi/opensearch/database_logic.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,9 @@ def apply_free_text_filter(search: Search, free_text_queries: Optional[List[str]
457457
)
458458

459459
@staticmethod
460-
def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
460+
def apply_datetime_filter(
461+
search: Search, datetime: Optional[str]
462+
) -> Tuple[Search, Dict[str, Optional[str]]]:
461463
"""Apply a filter to search on datetime, start_datetime, and end_datetime fields.
462464
463465
Args:
@@ -469,14 +471,14 @@ def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
469471
"""
470472
datetime_search = return_date(datetime)
471473

474+
if not datetime_search:
475+
return search, datetime_search
476+
472477
# USE_DATETIME env var
473478
# True: Search by datetime, if null search by start/end datetime
474479
# False: Always search only by start/end datetime
475480
USE_DATETIME = get_bool_env("USE_DATETIME", default=True)
476481

477-
if not datetime_search:
478-
return search
479-
480482
if USE_DATETIME:
481483
if "eq" in datetime_search:
482484
# For exact matches, include:
@@ -552,7 +554,10 @@ def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
552554
),
553555
]
554556

555-
return search.query(Q("bool", should=should, minimum_should_match=1))
557+
return (
558+
search.query(Q("bool", should=should, minimum_should_match=1)),
559+
datetime_search,
560+
)
556561
else:
557562
if "eq" in datetime_search:
558563
filter_query = Q(
@@ -586,7 +591,7 @@ def apply_datetime_filter(search: Search, datetime: Optional[str]) -> Search:
586591
),
587592
],
588593
)
589-
return search.query(filter_query)
594+
return search.query(filter_query), datetime_search
590595

591596
@staticmethod
592597
def apply_bbox_filter(search: Search, bbox: List):

stac_fastapi/sfeos_helpers/stac_fastapi/sfeos_helpers/aggregation/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ async def aggregate(
313313
)
314314

315315
if aggregate_request.datetime:
316-
search = self.database.apply_datetime_filter(
316+
search, _ = self.database.apply_datetime_filter(
317317
search=search, datetime=aggregate_request.datetime
318318
)
319319

stac_fastapi/sfeos_helpers/stac_fastapi/sfeos_helpers/search_engine/selection/cache_manager.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,11 @@ async def load_aliases(self) -> Dict[str, List[Tuple[Dict[str, str]]]]:
9696
main_alias = self._find_main_alias(items_aliases)
9797
aliases_dict = self._organize_aliases(items_aliases, main_alias)
9898

99-
if aliases_dict and main_alias not in result:
100-
result[main_alias] = [(aliases_dict,)]
99+
if aliases_dict:
100+
if main_alias not in result:
101+
result[main_alias] = []
102+
103+
result[main_alias].append((aliases_dict,))
101104

102105
self.cache_manager.set_cache(result)
103106
return result

0 commit comments

Comments
 (0)