|
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 != "https://api.stacspec.org/v1.0.0-rc.1/collection-search" |
| 94 | +] |
79 | 95 |
|
80 | 96 | aggregation_extension = AggregationExtension( |
81 | 97 | client=EsAsyncBaseAggregationClient( |
82 | 98 | database=database_logic, session=session, settings=settings |
83 | 99 | ) |
84 | 100 | ) |
| 101 | + |
| 102 | +aggregation_extension.conformance_classes = [ |
| 103 | + cls |
| 104 | + for cls in aggregation_extension.conformance_classes |
| 105 | + if cls != "https://api.stacspec.org/v0.3.0/aggregation" |
| 106 | +] |
| 107 | + |
85 | 108 | aggregation_extension.POST = EsAggregationExtensionPostRequest |
86 | 109 | aggregation_extension.GET = EsAggregationExtensionGetRequest |
87 | 110 |
|
88 | 111 | fields_extension = FieldsExtension() |
89 | 112 | fields_extension.conformance_classes.append(FieldsConformanceClasses.ITEMS) |
90 | 113 |
|
| 114 | +fields_extension.conformance_classes = [ |
| 115 | + cls |
| 116 | + for cls in fields_extension.conformance_classes |
| 117 | + if cls.value != "http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query" |
| 118 | +] |
| 119 | + |
91 | 120 | search_extensions = [ |
92 | 121 | fields_extension, |
93 | 122 | QueryExtension(), |
|
120 | 149 | ), |
121 | 150 | ) |
122 | 151 |
|
| 152 | +LINKS_TO_BE_REMOVED = { |
| 153 | + "https://api.stacspec.org/v1.0.0/collections/extensions/transaction", |
| 154 | + "https://api.stacspec.org/v1.0.0/ogcapi-features/extensions/transaction", |
| 155 | + "https://api.stacspec.org/v1.0.0/item-search#query", |
| 156 | + "https://api.stacspec.org/v1.0.0-rc.1/item-search#free-text", |
| 157 | + "https://api.stacspec.org/v1.0.0/ogcapi-features#fields", |
| 158 | +} |
| 159 | + |
| 160 | +for extension in search_extensions: |
| 161 | + extension.conformance_classes = [ |
| 162 | + cls for cls in extension.conformance_classes if cls not in LINKS_TO_BE_REMOVED |
| 163 | + ] |
| 164 | + |
| 165 | +for extension in search_extensions: |
| 166 | + extension.conformance_classes = [ |
| 167 | + "https://api.stacspec.org/v1.0.0-rc.1/item-search#fields" |
| 168 | + if cls == "https://api.stacspec.org/v1.0.0/item-search#fields" |
| 169 | + else "https://api.stacspec.org/v1.0.0-rc.1/item-search#sort" |
| 170 | + if cls == "https://api.stacspec.org/v1.0.0/item-search#sort" |
| 171 | + else cls |
| 172 | + for cls in extension.conformance_classes |
| 173 | + ] |
| 174 | + |
| 175 | + |
123 | 176 | extensions = [aggregation_extension] + search_extensions |
124 | 177 |
|
125 | 178 | database_logic.extensions = [type(ext).__name__ for ext in extensions] |
|
0 commit comments