Skip to content

Commit bfd94f4

Browse files
committed
add collection_request_model to the client
1 parent fd5c48b commit bfd94f4

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

stac_fastapi/pgstac/app.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,16 @@
8383
post_request_model = create_post_request_model(extensions, base_model=PgstacSearch)
8484
get_request_model = create_get_request_model(extensions)
8585

86+
# will only use parameters defined in collections_get_request_model
87+
collection_search_model = create_post_request_model(extensions, base_model=PgstacSearch)
88+
8689
api = StacApi(
8790
settings=settings,
8891
extensions=extensions + [collection_search_extension],
89-
client=CoreCrudClient(post_request_model=post_request_model), # type: ignore
92+
client=CoreCrudClient(
93+
post_request_model=post_request_model, # type: ignore
94+
collection_request_model=collection_search_model, # type: ignore
95+
),
9096
response_class=ORJSONResponse,
9197
items_get_request_model=items_get_request_model,
9298
search_get_request_model=get_request_model,

stac_fastapi/pgstac/core.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,9 @@ def clean_search_args( # noqa: C901
532532
filter_query = to_cql2(parse_cql2_text(filter_query))
533533
filter_lang = "cql2-json"
534534

535+
base_args["filter"] = orjson.loads(filter_query)
536+
base_args["filter-lang"] = filter_lang
537+
535538
if datetime:
536539
base_args["datetime"] = format_datetime_range(datetime)
537540

tests/api/test_api.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
from pystac import Collection, Extent, Item, SpatialExtent, TemporalExtent
1313
from stac_fastapi.api.app import StacApi
1414
from stac_fastapi.api.models import create_get_request_model, create_post_request_model
15-
from stac_fastapi.extensions.core import FieldsExtension, TransactionExtension
15+
from stac_fastapi.extensions.core import (
16+
CollectionSearchExtension,
17+
FieldsExtension,
18+
TransactionExtension,
19+
)
1620
from stac_fastapi.types import stac as stac_types
1721

1822
from stac_fastapi.pgstac.core import CoreCrudClient, Settings
@@ -726,12 +730,23 @@ async def get_collection(
726730
]
727731
post_request_model = create_post_request_model(extensions, base_model=PgstacSearch)
728732
get_request_model = create_get_request_model(extensions)
733+
collection_search_model = create_post_request_model(
734+
extensions, base_model=PgstacSearch
735+
)
736+
collection_search_extension = CollectionSearchExtension.from_extensions(
737+
extensions=extensions
738+
)
739+
collections_get_request_model = collection_search_extension.GET
729740
api = StacApi(
730-
client=Client(post_request_model=post_request_model),
741+
client=Client(
742+
post_request_model=post_request_model,
743+
collection_request_model=collection_search_model,
744+
),
731745
settings=settings,
732746
extensions=extensions,
733747
search_post_request_model=post_request_model,
734748
search_get_request_model=get_request_model,
749+
collections_get_request_model=collections_get_request_model,
735750
)
736751
app = api.app
737752
await connect_to_db(app)

tests/conftest.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,17 @@ def api_client(request, database):
151151
)
152152

153153
collections_get_request_model = collection_search_extension.GET
154+
collection_search_model = create_post_request_model(
155+
extensions, base_model=PgstacSearch
156+
)
154157

155158
api = StacApi(
156159
settings=api_settings,
157160
extensions=extensions + [collection_search_extension],
158-
client=CoreCrudClient(post_request_model=search_post_request_model),
161+
client=CoreCrudClient(
162+
post_request_model=search_post_request_model,
163+
collection_request_model=collection_search_model,
164+
),
159165
items_get_request_model=items_get_request_model,
160166
search_get_request_model=search_get_request_model,
161167
search_post_request_model=search_post_request_model,

0 commit comments

Comments
 (0)