Skip to content

Commit d6fdb5b

Browse files
author
Phil Varner
authored
advertise correct conformance class uri strings (#102)
* advertise correct conformance class uri strings for Query and Sort Extensions
1 parent 0005447 commit d6fdb5b

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/app.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
"""FastAPI application."""
2+
from typing import List
3+
4+
import attr
5+
26
from stac_fastapi.api.app import StacApi
37
from stac_fastapi.api.models import create_get_request_model, create_post_request_model
48
from stac_fastapi.elasticsearch.config import ElasticsearchSettings
@@ -21,12 +25,33 @@
2125
settings = ElasticsearchSettings()
2226
session = Session.create_from_settings(settings)
2327

28+
29+
# All of these extensions have their conformance class URL
30+
# incorrect, with an extra `/` before the #
31+
@attr.s
32+
class FixedSortExtension(SortExtension):
33+
"""Fixed Sort Extension string."""
34+
35+
conformance_classes: List[str] = attr.ib(
36+
factory=lambda: ["https://api.stacspec.org/v1.0.0-beta.4/item-search#sort"]
37+
)
38+
39+
40+
@attr.s
41+
class FixedQueryExtension(QueryExtension):
42+
"""Fixed Query Extension string."""
43+
44+
conformance_classes: List[str] = attr.ib(
45+
factory=lambda: ["https://api.stacspec.org/v1.0.0-beta.4/item-search#query"]
46+
)
47+
48+
2449
extensions = [
2550
TransactionExtension(client=TransactionsClient(session=session), settings=settings),
2651
BulkTransactionExtension(client=BulkTransactionsClient(session=session)),
2752
# FieldsExtension(),
28-
QueryExtension(),
29-
SortExtension(),
53+
FixedQueryExtension(),
54+
FixedSortExtension(),
3055
TokenPaginationExtension(),
3156
ContextExtension(),
3257
]

stac_fastapi/elasticsearch/tests/conftest.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,16 @@
1010

1111
from stac_fastapi.api.app import StacApi
1212
from stac_fastapi.api.models import create_request_model
13+
from stac_fastapi.elasticsearch.app import FixedQueryExtension, FixedSortExtension
1314
from stac_fastapi.elasticsearch.config import AsyncElasticsearchSettings
1415
from stac_fastapi.elasticsearch.core import (
1516
BulkTransactionsClient,
1617
CoreClient,
1718
TransactionsClient,
1819
)
1920
from stac_fastapi.elasticsearch.database_logic import create_collection_index
20-
from stac_fastapi.elasticsearch.extensions import QueryExtension
2121
from stac_fastapi.extensions.core import ( # FieldsExtension,
2222
ContextExtension,
23-
SortExtension,
2423
TokenPaginationExtension,
2524
TransactionExtension,
2625
)
@@ -144,9 +143,9 @@ async def app():
144143
client=TransactionsClient(session=None), settings=settings
145144
),
146145
ContextExtension(),
147-
SortExtension(),
146+
FixedSortExtension(),
148147
# FieldsExtension(),
149-
QueryExtension(),
148+
FixedQueryExtension(),
150149
TokenPaginationExtension(),
151150
]
152151

0 commit comments

Comments
 (0)