Skip to content

Commit

Permalink
Merge pull request #30 from jverrydt/main
Browse files Browse the repository at this point in the history
fix: use GET requests when using CQL2 STAC filters
  • Loading branch information
vincentsarago authored Feb 25, 2025
2 parents 8020c6e + 506bacb commit 2abb8cc
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 8 deletions.
38 changes: 38 additions & 0 deletions tests/test_dependency_params.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""test get_dependency_params."""

from titiler.core.dependencies import RescalingParams
from titiler.stacapi.dependencies import STACQueryParams
from titiler.stacapi.factory import get_dependency_params


Expand Down Expand Up @@ -28,3 +29,40 @@ def _parse_rescale(rescale):
dependency=RescalingParams,
query_params={"rescale": _parse_rescale(qs)},
) == [(0.0, 1.0), (2.0, 3.0)]


def test_get_params_stacquery():
"""test get_dependency_params for STACQueryParams."""

qs = {
"bbox": "1,2,3,4",
"datetime": "2020-01-01/2020-12-31",
"limit": 10,
"max_items": 100,
}
assert get_dependency_params(dependency=STACQueryParams, query_params=qs,) == {
"method": "POST",
"bbox": [1.0, 2.0, 3.0, 4.0],
"datetime": "2020-01-01/2020-12-31",
"limit": 10,
"max_items": 100,
"sortby": None,
"filter": None,
}

qs = {
"bbox": "1,2,3,4",
"datetime": "2020-01-01/2020-12-31",
"filter": "property=value",
"limit": 10,
"max_items": 100,
}
assert get_dependency_params(dependency=STACQueryParams, query_params=qs,) == {
"method": "GET",
"bbox": [1.0, 2.0, 3.0, 4.0],
"datetime": "2020-01-01/2020-12-31",
"filter": "property=value",
"limit": 10,
"max_items": 100,
"sortby": None,
}
17 changes: 9 additions & 8 deletions titiler/stacapi/dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,13 +167,13 @@ def STACQueryParams(
query: Annotated[
Optional[str], Query(description="CQL2 Filter", alias="filter")
] = None,
filter_lang: Annotated[
Optional[Literal["cql2-text", "cql2-json"]],
Query(
description="CQL2 Language (cql2-text, cql2-json). Defaults to cql2-text.",
alias="filter-lang",
),
] = None,
# filter_lang: Annotated[
# Optional[Literal["cql2-text", "cql2-json"]],
# Query(
# description="CQL2 Language (cql2-text, cql2-json). Defaults to cql2-text.",
# alias="filter-lang",
# ),
# ] = None,
limit: Annotated[
Optional[int],
Query(description="Limit the number of items per page search (default: 10)"),
Expand All @@ -185,11 +185,12 @@ def STACQueryParams(
) -> Dict:
"""Dependency to construct STAC API Search Query."""
return {
"method": "GET" if query else "POST",
"bbox": list(map(float, bbox.split(","))) if bbox else None,
"datetime": datetime,
"sortby": sortby,
"filter": query,
"filter-lang": filter_lang,
# "filter_lang": filter_lang,
"limit": limit or 10,
"max_items": max_items or 100,
}
Expand Down

0 comments on commit 2abb8cc

Please sign in to comment.