|
14 | 14 |
|
15 | 15 | from stac_fastapi.core.base_database_logic import BaseDatabaseLogic |
16 | 16 | from stac_fastapi.core.base_settings import ApiBaseSettings |
17 | | -from stac_fastapi.core.datetime_utils import datetime_to_str |
| 17 | +from stac_fastapi.core.datetime_utils import datetime_to_str, format_datetime_range |
18 | 18 | from stac_fastapi.core.session import Session |
19 | 19 | from stac_fastapi.extensions.core.aggregation.client import AsyncBaseAggregationClient |
20 | 20 | from stac_fastapi.extensions.core.aggregation.request import ( |
@@ -257,24 +257,6 @@ def get_filter(self, filter, filter_lang): |
257 | 257 | detail=f"Unknown filter-lang: {filter_lang}. Only cql2-json or cql2-text are supported.", |
258 | 258 | ) |
259 | 259 |
|
260 | | - def _format_datetime_range(self, date_tuple: DateTimeType) -> str: |
261 | | - """ |
262 | | - Convert a tuple of datetime objects or None into a formatted string for API requests. |
263 | | -
|
264 | | - Args: |
265 | | - date_tuple (tuple): A tuple containing two elements, each can be a datetime object or None. |
266 | | -
|
267 | | - Returns: |
268 | | - str: A string formatted as 'YYYY-MM-DDTHH:MM:SS.sssZ/YYYY-MM-DDTHH:MM:SS.sssZ', with '..' used if any element is None. |
269 | | - """ |
270 | | - |
271 | | - def format_datetime(dt): |
272 | | - """Format a single datetime object to the ISO8601 extended format with 'Z'.""" |
273 | | - return dt.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z" if dt else ".." |
274 | | - |
275 | | - start, end = date_tuple |
276 | | - return f"{format_datetime(start)}/{format_datetime(end)}" |
277 | | - |
278 | 260 | async def aggregate( |
279 | 261 | self, |
280 | 262 | aggregate_request: Optional[EsAggregationExtensionPostRequest] = None, |
@@ -325,7 +307,7 @@ async def aggregate( |
325 | 307 | base_args["intersects"] = orjson.loads(unquote_plus(intersects)) |
326 | 308 |
|
327 | 309 | if datetime: |
328 | | - base_args["datetime"] = self._format_datetime_range(datetime) |
| 310 | + base_args["datetime"] = format_datetime_range(datetime) |
329 | 311 |
|
330 | 312 | if filter_expr: |
331 | 313 | base_args["filter"] = self.get_filter(filter_expr, filter_lang) |
|
0 commit comments