|
68 | 68 | filter_extension.conformance_classes.append(
|
69 | 69 | FilterConformanceClasses.ADVANCED_COMPARISON_OPERATORS
|
70 | 70 | )
|
| 71 | +filter_extension.conformance_classes = [ |
| 72 | + "https://api.stacspec.org/v1.0.0-rc.1/item-search#filter" |
| 73 | + if cls.value == "https://api.stacspec.org/v1.0.0-rc.2/item-search#filter" |
| 74 | + else cls.value |
| 75 | + for cls in filter_extension.conformance_classes |
| 76 | +] |
71 | 77 |
|
72 | 78 | # Adding collection search extension for compatibility with stac-auth-proxy
|
73 | 79 | # (https://github.com/developmentseed/stac-auth-proxy)
|
74 | 80 | # The extension is not fully implemented yet but is required for collection filtering support
|
75 | 81 | collection_search_extension = CollectionSearchExtension()
|
76 |
| -collection_search_extension.conformance_classes.append( |
77 |
| - "https://api.stacspec.org/v1.0.0-rc.1/collection-search#filter" |
78 |
| -) |
| 82 | + |
| 83 | +collection_search_extension.conformance_classes = [ |
| 84 | + "http://www.opengis.net/spec/ogcapi-common-2/1.0/req/simple-query" |
| 85 | + if cls == "http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query" |
| 86 | + else cls |
| 87 | + for cls in collection_search_extension.conformance_classes |
| 88 | +] |
| 89 | + |
| 90 | +collection_search_extension.conformance_classes = [ |
| 91 | + cls |
| 92 | + for cls in collection_search_extension.conformance_classes |
| 93 | + if cls |
| 94 | + not in [ |
| 95 | + "https://api.stacspec.org/v1.0.0-rc.1/collection-search", |
| 96 | + ] |
| 97 | +] |
79 | 98 |
|
80 | 99 | aggregation_extension = AggregationExtension(
|
81 | 100 | client=EsAsyncBaseAggregationClient(
|
82 | 101 | database=database_logic, session=session, settings=settings
|
83 | 102 | )
|
84 | 103 | )
|
| 104 | + |
| 105 | +aggregation_extension.conformance_classes = [ |
| 106 | + cls |
| 107 | + for cls in aggregation_extension.conformance_classes |
| 108 | + if cls != "https://api.stacspec.org/v0.3.0/aggregation" |
| 109 | +] |
| 110 | + |
85 | 111 | aggregation_extension.POST = EsAggregationExtensionPostRequest
|
86 | 112 | aggregation_extension.GET = EsAggregationExtensionGetRequest
|
87 | 113 |
|
88 | 114 | fields_extension = FieldsExtension()
|
89 | 115 | fields_extension.conformance_classes.append(FieldsConformanceClasses.ITEMS)
|
90 | 116 |
|
| 117 | +fields_extension.conformance_classes = [ |
| 118 | + cls |
| 119 | + for cls in fields_extension.conformance_classes |
| 120 | + if cls.value != "http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query" |
| 121 | +] |
| 122 | + |
91 | 123 | search_extensions = [
|
92 | 124 | fields_extension,
|
93 | 125 | QueryExtension(),
|
|
120 | 152 | ),
|
121 | 153 | )
|
122 | 154 |
|
| 155 | +LINKS_TO_BE_REMOVED = { |
| 156 | + "https://api.stacspec.org/v1.0.0/collections/extensions/transaction", |
| 157 | + "https://api.stacspec.org/v1.0.0/ogcapi-features/extensions/transaction", |
| 158 | + "https://api.stacspec.org/v1.0.0/item-search#query", |
| 159 | + "https://api.stacspec.org/v1.0.0-rc.1/item-search#free-text", |
| 160 | +} |
| 161 | + |
| 162 | +for extension in search_extensions: |
| 163 | + extension.conformance_classes = [ |
| 164 | + cls for cls in extension.conformance_classes if cls not in LINKS_TO_BE_REMOVED |
| 165 | + ] |
| 166 | + |
| 167 | +for extension in search_extensions: |
| 168 | + extension.conformance_classes = [ |
| 169 | + "https://api.stacspec.org/v1.0.0-rc.1/item-search#fields" |
| 170 | + if cls == "https://api.stacspec.org/v1.0.0/item-search#fields" |
| 171 | + else "https://api.stacspec.org/v1.0.0-rc.1/item-search#sort" |
| 172 | + if cls == "https://api.stacspec.org/v1.0.0/item-search#sort" |
| 173 | + else cls |
| 174 | + for cls in extension.conformance_classes |
| 175 | + ] |
| 176 | + |
| 177 | + |
123 | 178 | extensions = [aggregation_extension] + search_extensions
|
124 | 179 |
|
125 | 180 | database_logic.extensions = [type(ext).__name__ for ext in extensions]
|
|
0 commit comments