|
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