Skip to content

Commit b983f28

Browse files
committed
parse intersection string, test
1 parent bd55ade commit b983f28

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/core.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from datetime import datetime as datetime_type
55
from datetime import timezone
66
from typing import Any, Dict, List, Optional, Set, Type, Union
7-
from urllib.parse import urljoin
7+
from urllib.parse import unquote_plus, urljoin
88

99
import attr
1010
import stac_pydantic
@@ -325,7 +325,7 @@ async def get_search(
325325
base_args["datetime"] = datetime
326326

327327
if intersects:
328-
base_args["intersects"] = intersects
328+
base_args["intersects"] = json.loads(unquote_plus(intersects))
329329

330330
if sortby:
331331
# https://github.com/radiantearth/stac-spec/tree/master/api-spec/extensions/sort#http-get-or-post-form

stac_fastapi/elasticsearch/tests/api/test_api.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,18 @@ async def test_search_invalid_date(app_client, ctx):
233233
assert resp.status_code == 400
234234

235235

236-
async def test_search_point_intersects(app_client, ctx):
236+
async def test_search_point_intersects_get(app_client, ctx):
237+
point = [150.04, -33.14]
238+
resp = await app_client.get(
239+
f"/search?intersects={'type':'Point','coordinates':{point}}"
240+
)
241+
242+
assert resp.status_code == 200
243+
resp_json = resp.json()
244+
assert len(resp_json["features"]) == 1
245+
246+
247+
async def test_search_point_intersects_post(app_client, ctx):
237248
point = [150.04, -33.14]
238249
intersects = {"type": "Point", "coordinates": point}
239250

0 commit comments

Comments
 (0)