Skip to content

Commit 8aaa687

Browse files
committed
fix intersects GET returning list
1 parent ce95505 commit 8aaa687

File tree

1 file changed

+21
-1
lines changed
  • stac_fastapi/core/stac_fastapi/core

1 file changed

+21
-1
lines changed

stac_fastapi/core/stac_fastapi/core/core.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Item crud client."""
2+
import json
23
import logging
34
import re
45
from datetime import datetime as datetime_type
@@ -452,8 +453,27 @@ async def get_search(
452453
if datetime:
453454
base_args["datetime"] = datetime
454455

456+
# As of stac-fastapi 2.5.x, the intersects GET request parameter is being sent as a list
455457
if intersects:
456-
base_args["intersects"] = orjson.loads(unquote_plus(intersects))
458+
intersects_dict = {"type": None, "coordinates": None}
459+
460+
combined_json_string = intersects[0]
461+
462+
# Iterate over the remaining fragments and add each with a preceding comma
463+
for fragment in intersects[1:]:
464+
combined_json_string += "," + fragment
465+
466+
combined_json_string = combined_json_string.replace("'", "")
467+
combined_json_string = "".join(
468+
char for char in combined_json_string if char.isprintable()
469+
)
470+
471+
try:
472+
intersects_dict = json.loads(combined_json_string)
473+
except json.JSONDecodeError as error:
474+
print("Failed to parse JSON:", error)
475+
476+
base_args["intersects"] = intersects_dict
457477

458478
if sortby:
459479
sort_param = []

0 commit comments

Comments
 (0)