|
17 | 17 | create_request_model,
|
18 | 18 | )
|
19 | 19 | from stac_fastapi.extensions.core import (
|
20 |
| - CollectionSearchExtension, |
21 | 20 | FieldsExtension,
|
22 | 21 | FilterExtension,
|
23 | 22 | SortExtension,
|
24 | 23 | TokenPaginationExtension,
|
25 | 24 | TransactionExtension,
|
26 | 25 | )
|
27 |
| -from stac_fastapi.extensions.core.collection_search.request import ( |
28 |
| - BaseCollectionSearchGetRequest, |
29 |
| -) |
| 26 | +from stac_fastapi.extensions.core.collection_search import CollectionSearchExtension |
30 | 27 | from stac_fastapi.extensions.third_party import BulkTransactionExtension
|
31 | 28 |
|
32 | 29 | from stac_fastapi.pgstac.config import Settings
|
|
52 | 49 | "bulk_transactions": BulkTransactionExtension(client=BulkTransactionsClient()),
|
53 | 50 | }
|
54 | 51 |
|
55 |
| -collections_extensions_map = { |
56 |
| - "collection_search": CollectionSearchExtension(), |
57 |
| -} |
58 |
| - |
59 | 52 | if enabled_extensions := os.getenv("ENABLED_EXTENSIONS"):
|
60 | 53 | _enabled_extensions = enabled_extensions.split(",")
|
61 | 54 | extensions = [
|
62 | 55 | extension
|
63 | 56 | for key, extension in extensions_map.items()
|
64 | 57 | if key in _enabled_extensions
|
65 | 58 | ]
|
66 |
| - collection_extensions = [ |
67 |
| - extension |
68 |
| - for key, extension in collections_extensions_map.items() |
69 |
| - if key in _enabled_extensions |
70 |
| - ] |
71 | 59 | else:
|
| 60 | + _enabled_extensions = list(extensions_map.keys()) + ["collection_search"] |
72 | 61 | extensions = list(extensions_map.values())
|
73 |
| - collection_extensions = list(collections_extensions_map.values()) |
74 | 62 |
|
75 | 63 |
|
76 | 64 | if any(isinstance(ext, TokenPaginationExtension) for ext in extensions):
|
|
83 | 71 | else:
|
84 | 72 | items_get_request_model = ItemCollectionUri
|
85 | 73 |
|
86 |
| -if any(isinstance(ext, CollectionSearchExtension) for ext in collection_extensions): |
87 |
| - collections_get_request_model = create_request_model( |
88 |
| - model_name="CollectionsGetRequest", |
89 |
| - base_model=BaseCollectionSearchGetRequest, |
90 |
| - extensions=extensions, |
91 |
| - request_type="GET", |
92 |
| - ) |
| 74 | +if "collection_search" in _enabled_extensions: |
| 75 | + collection_extension = CollectionSearchExtension() |
| 76 | + collections_get_request_model = collection_extension.GET |
| 77 | + extensions.append(collection_extension) |
93 | 78 | else:
|
94 | 79 | collections_get_request_model = EmptyRequest
|
95 | 80 |
|
|
98 | 83 |
|
99 | 84 | api = StacApi(
|
100 | 85 | settings=settings,
|
101 |
| - extensions=extensions + collection_extensions, |
| 86 | + extensions=extensions, |
102 | 87 | client=CoreCrudClient(post_request_model=post_request_model), # type: ignore
|
103 | 88 | response_class=ORJSONResponse,
|
104 | 89 | items_get_request_model=items_get_request_model,
|
|
0 commit comments