File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
src/stac_auth_proxy/filters Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change 11"""Generate CQL2 filter expressions via Jinja2 templating."""
22
3- from typing import Annotated , Any
3+ from dataclasses import dataclass , field
44
55from cql2 import Expr
66from fastapi import Request
99from ..utils .requests import extract_variables
1010
1111
12- def Template (template_str : str ):
12+ @dataclass
13+ class Template :
1314 """Generate CQL2 filter expressions via Jinja2 templating."""
14- env = Environment (loader = BaseLoader ).from_string (template_str )
1515
16- async def dependency (request : Request ) -> Expr :
16+ template_str : str
17+ env : Environment = field (init = False )
18+
19+ def __post_init__ (self ):
20+ """Initialize the Jinja2 environment."""
21+ self .env = Environment (loader = BaseLoader ).from_string (self .template_str )
22+
23+ async def __call__ (self , request : Request ) -> Expr :
1724 """Render a CQL2 filter expression with the request and auth token."""
1825 # TODO: How to handle the case where auth_token is null?
1926 context = {
@@ -31,9 +38,7 @@ async def dependency(request: Request) -> Expr:
3138 },
3239 "token" : request .state .user ,
3340 }
34- cql2_str = env .render (** context ).strip ()
41+ cql2_str = self . env .render (** context ).strip ()
3542 cql2_expr = Expr (cql2_str )
3643 cql2_expr .validate ()
3744 return cql2_expr
38-
39- return dependency
You can’t perform that action at this time.
0 commit comments