Skip to content

Commit 2abb8cc

Browse files
Merge pull request #30 from jverrydt/main
fix: use GET requests when using CQL2 STAC filters
2 parents 8020c6e + 506bacb commit 2abb8cc

File tree

2 files changed

+47
-8
lines changed

2 files changed

+47
-8
lines changed

Diff for: tests/test_dependency_params.py

+38
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""test get_dependency_params."""
22

33
from titiler.core.dependencies import RescalingParams
4+
from titiler.stacapi.dependencies import STACQueryParams
45
from titiler.stacapi.factory import get_dependency_params
56

67

@@ -28,3 +29,40 @@ def _parse_rescale(rescale):
2829
dependency=RescalingParams,
2930
query_params={"rescale": _parse_rescale(qs)},
3031
) == [(0.0, 1.0), (2.0, 3.0)]
32+
33+
34+
def test_get_params_stacquery():
35+
"""test get_dependency_params for STACQueryParams."""
36+
37+
qs = {
38+
"bbox": "1,2,3,4",
39+
"datetime": "2020-01-01/2020-12-31",
40+
"limit": 10,
41+
"max_items": 100,
42+
}
43+
assert get_dependency_params(dependency=STACQueryParams, query_params=qs,) == {
44+
"method": "POST",
45+
"bbox": [1.0, 2.0, 3.0, 4.0],
46+
"datetime": "2020-01-01/2020-12-31",
47+
"limit": 10,
48+
"max_items": 100,
49+
"sortby": None,
50+
"filter": None,
51+
}
52+
53+
qs = {
54+
"bbox": "1,2,3,4",
55+
"datetime": "2020-01-01/2020-12-31",
56+
"filter": "property=value",
57+
"limit": 10,
58+
"max_items": 100,
59+
}
60+
assert get_dependency_params(dependency=STACQueryParams, query_params=qs,) == {
61+
"method": "GET",
62+
"bbox": [1.0, 2.0, 3.0, 4.0],
63+
"datetime": "2020-01-01/2020-12-31",
64+
"filter": "property=value",
65+
"limit": 10,
66+
"max_items": 100,
67+
"sortby": None,
68+
}

Diff for: titiler/stacapi/dependencies.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,13 @@ def STACQueryParams(
167167
query: Annotated[
168168
Optional[str], Query(description="CQL2 Filter", alias="filter")
169169
] = None,
170-
filter_lang: Annotated[
171-
Optional[Literal["cql2-text", "cql2-json"]],
172-
Query(
173-
description="CQL2 Language (cql2-text, cql2-json). Defaults to cql2-text.",
174-
alias="filter-lang",
175-
),
176-
] = None,
170+
# filter_lang: Annotated[
171+
# Optional[Literal["cql2-text", "cql2-json"]],
172+
# Query(
173+
# description="CQL2 Language (cql2-text, cql2-json). Defaults to cql2-text.",
174+
# alias="filter-lang",
175+
# ),
176+
# ] = None,
177177
limit: Annotated[
178178
Optional[int],
179179
Query(description="Limit the number of items per page search (default: 10)"),
@@ -185,11 +185,12 @@ def STACQueryParams(
185185
) -> Dict:
186186
"""Dependency to construct STAC API Search Query."""
187187
return {
188+
"method": "GET" if query else "POST",
188189
"bbox": list(map(float, bbox.split(","))) if bbox else None,
189190
"datetime": datetime,
190191
"sortby": sortby,
191192
"filter": query,
192-
"filter-lang": filter_lang,
193+
# "filter_lang": filter_lang,
193194
"limit": limit or 10,
194195
"max_items": max_items or 100,
195196
}

0 commit comments

Comments
 (0)