Skip to content

Commit 66e1c29

Browse files
committed
Add search_dependency
1 parent 10184cb commit 66e1c29

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

titiler/pgstac/factory.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import json
44
import os
55
from dataclasses import dataclass, field
6-
from typing import Callable, Dict, Optional, Type
6+
from typing import Any, Callable, Dict, Optional, Tuple, Type
77
from urllib.parse import urlencode
88

99
import rasterio
@@ -31,6 +31,17 @@ def PathParams(searchid: str = Path(..., description="Search Id")) -> str:
3131
return searchid
3232

3333

34+
def SearchParams(body: SearchQuery) -> Tuple[str, Optional[Dict[str, Any]]]:
35+
"""Search parameters."""
36+
search = body.json(
37+
exclude_none=True,
38+
exclude={"metadata"},
39+
by_alias=True,
40+
)
41+
metadata = body.metadata or {}
42+
return search, metadata
43+
44+
3445
@dataclass
3546
class PgSTACParams(DefaultDependency):
3647
"""PgSTAC parameters."""
@@ -68,6 +79,11 @@ class MosaicTilerFactory(BaseTilerFactory):
6879
# TileMatrixSet dependency
6980
tms_dependency: Callable[..., TileMatrixSet] = TMSParams
7081

82+
# Search dependency
83+
search_dependency: Callable[
84+
..., Tuple[str, Optional[Dict[str, Any]]]
85+
] = SearchParams
86+
7187
backend_options: Dict = field(default_factory=dict)
7288

7389
def register_routes(self) -> None:
@@ -339,14 +355,12 @@ def _search_routes(self) -> None:
339355
"/register",
340356
responses={200: {"description": "Register a Search."}},
341357
)
342-
def register_search(request: Request, body: SearchQuery):
358+
def register_search(
359+
request: Request,
360+
search_query=Depends(self.search_dependency)
361+
):
343362
"""Register a Search query."""
344-
search = body.json(
345-
exclude_none=True,
346-
exclude={"metadata"},
347-
by_alias=True,
348-
)
349-
metadata = body.metadata or {}
363+
search, metadata = search_query
350364

351365
with request.app.state.dbpool.connection() as conn:
352366
with conn.cursor() as cursor:

0 commit comments

Comments
 (0)