From 7f5dff7f3b1dfc06c1fb2c9a13982b28a2050b69 Mon Sep 17 00:00:00 2001 From: Phil Varner Date: Fri, 6 May 2022 10:49:22 -0400 Subject: [PATCH 1/2] advertise correct conformance class uri strings --- .../stac_fastapi/elasticsearch/app.py | 40 +++++++++++++++++-- stac_fastapi/elasticsearch/tests/conftest.py | 14 ++++--- 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py b/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py index 99dec7cb..c9fb24b0 100644 --- a/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py +++ b/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py @@ -1,4 +1,8 @@ """FastAPI application.""" +from typing import List + +import attr + from stac_fastapi.api.app import StacApi from stac_fastapi.api.models import create_get_request_model, create_post_request_model from stac_fastapi.elasticsearch.config import ElasticsearchSettings @@ -21,14 +25,44 @@ settings = ElasticsearchSettings() session = Session.create_from_settings(settings) + +# All of these extensions have their conformance class URL +# incorrect, with an extra `/` before the # +@attr.s +class FixedSortExtension(SortExtension): + """Fixed Sort Extension string.""" + + conformance_classes: List[str] = attr.ib( + factory=lambda: ["https://api.stacspec.org/v1.0.0-beta.4/item-search#sort"] + ) + + +@attr.s +class FixedQueryExtension(QueryExtension): + """Fixed Query Extension string.""" + + conformance_classes: List[str] = attr.ib( + factory=lambda: ["https://api.stacspec.org/v1.0.0-beta.4/item-search#query"] + ) + + +@attr.s +class FixedContextExtension(ContextExtension): + """Fixed Context Extension string.""" + + conformance_classes: List[str] = attr.ib( + factory=lambda: ["https://api.stacspec.org/v1.0.0-beta.4/item-search#context"] + ) + + extensions = [ TransactionExtension(client=TransactionsClient(session=session), settings=settings), BulkTransactionExtension(client=BulkTransactionsClient(session=session)), # FieldsExtension(), - QueryExtension(), - SortExtension(), + FixedQueryExtension(), + FixedSortExtension(), TokenPaginationExtension(), - ContextExtension(), + FixedContextExtension(), ] post_request_model = create_post_request_model(extensions) diff --git a/stac_fastapi/elasticsearch/tests/conftest.py b/stac_fastapi/elasticsearch/tests/conftest.py index b0028ec9..0308e8fe 100644 --- a/stac_fastapi/elasticsearch/tests/conftest.py +++ b/stac_fastapi/elasticsearch/tests/conftest.py @@ -10,6 +10,11 @@ from stac_fastapi.api.app import StacApi from stac_fastapi.api.models import create_request_model +from stac_fastapi.elasticsearch.app import ( + FixedContextExtension, + FixedQueryExtension, + FixedSortExtension, +) from stac_fastapi.elasticsearch.config import AsyncElasticsearchSettings from stac_fastapi.elasticsearch.core import ( BulkTransactionsClient, @@ -17,10 +22,7 @@ TransactionsClient, ) from stac_fastapi.elasticsearch.database_logic import create_collection_index -from stac_fastapi.elasticsearch.extensions import QueryExtension from stac_fastapi.extensions.core import ( # FieldsExtension, - ContextExtension, - SortExtension, TokenPaginationExtension, TransactionExtension, ) @@ -143,10 +145,10 @@ async def app(): TransactionExtension( client=TransactionsClient(session=None), settings=settings ), - ContextExtension(), - SortExtension(), + FixedContextExtension(), + FixedSortExtension(), # FieldsExtension(), - QueryExtension(), + FixedQueryExtension(), TokenPaginationExtension(), ] From dfdf14bdd2bc59af0b34c45cdecb2212ccc339ff Mon Sep 17 00:00:00 2001 From: Phil Varner Date: Mon, 9 May 2022 13:52:17 -0400 Subject: [PATCH 2/2] revert context extension fix as it broke something??? --- .../elasticsearch/stac_fastapi/elasticsearch/app.py | 11 +---------- stac_fastapi/elasticsearch/tests/conftest.py | 9 +++------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py b/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py index c9fb24b0..c1b4b5a3 100644 --- a/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py +++ b/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py @@ -46,15 +46,6 @@ class FixedQueryExtension(QueryExtension): ) -@attr.s -class FixedContextExtension(ContextExtension): - """Fixed Context Extension string.""" - - conformance_classes: List[str] = attr.ib( - factory=lambda: ["https://api.stacspec.org/v1.0.0-beta.4/item-search#context"] - ) - - extensions = [ TransactionExtension(client=TransactionsClient(session=session), settings=settings), BulkTransactionExtension(client=BulkTransactionsClient(session=session)), @@ -62,7 +53,7 @@ class FixedContextExtension(ContextExtension): FixedQueryExtension(), FixedSortExtension(), TokenPaginationExtension(), - FixedContextExtension(), + ContextExtension(), ] post_request_model = create_post_request_model(extensions) diff --git a/stac_fastapi/elasticsearch/tests/conftest.py b/stac_fastapi/elasticsearch/tests/conftest.py index 0308e8fe..8e69d993 100644 --- a/stac_fastapi/elasticsearch/tests/conftest.py +++ b/stac_fastapi/elasticsearch/tests/conftest.py @@ -10,11 +10,7 @@ from stac_fastapi.api.app import StacApi from stac_fastapi.api.models import create_request_model -from stac_fastapi.elasticsearch.app import ( - FixedContextExtension, - FixedQueryExtension, - FixedSortExtension, -) +from stac_fastapi.elasticsearch.app import FixedQueryExtension, FixedSortExtension from stac_fastapi.elasticsearch.config import AsyncElasticsearchSettings from stac_fastapi.elasticsearch.core import ( BulkTransactionsClient, @@ -23,6 +19,7 @@ ) from stac_fastapi.elasticsearch.database_logic import create_collection_index from stac_fastapi.extensions.core import ( # FieldsExtension, + ContextExtension, TokenPaginationExtension, TransactionExtension, ) @@ -145,7 +142,7 @@ async def app(): TransactionExtension( client=TransactionsClient(session=None), settings=settings ), - FixedContextExtension(), + ContextExtension(), FixedSortExtension(), # FieldsExtension(), FixedQueryExtension(),