@@ -64,6 +64,7 @@ async def all_collections( # noqa: C901
64
64
Collections which match the search criteria, returns all
65
65
collections by default.
66
66
"""
67
+ base_url = get_base_url (request )
67
68
68
69
# Parse request parameters
69
70
base_args = {
@@ -73,7 +74,7 @@ async def all_collections( # noqa: C901
73
74
"query" : orjson .loads (unquote_plus (query )) if query else query ,
74
75
}
75
76
76
- clean = clean_search_args (
77
+ clean_args = clean_search_args (
77
78
base_args = base_args ,
78
79
datetime = datetime ,
79
80
fields = fields ,
@@ -82,53 +83,14 @@ async def all_collections( # noqa: C901
82
83
filter_lang = filter_lang ,
83
84
)
84
85
85
- # Do the request
86
- try :
87
- search_request = self .collections_get_request_model (** clean )
88
- except ValidationError as e :
89
- raise HTTPException (
90
- status_code = 400 , detail = f"Invalid parameters provided { e } "
91
- ) from e
92
-
93
- return await self ._collection_search_base (search_request , request = request )
94
-
95
- async def _collection_search_base ( # noqa: C901
96
- self ,
97
- search_request : APIRequest ,
98
- request : Request ,
99
- ) -> Collections :
100
- """Cross catalog search (GET).
101
-
102
- Called with `GET /search`.
103
-
104
- Args:
105
- search_request: search request parameters.
106
-
107
- Returns:
108
- All collections which match the search criteria.
109
- """
110
- base_url = get_base_url (request )
111
- search_request_json = json .dumps (
112
- {
113
- key : value
114
- for key , value in search_request .__dict__ .items ()
115
- if value is not None
116
- }
117
- )
118
-
119
- try :
120
- async with request .app .state .get_connection (request , "r" ) as conn :
121
- q , p = render (
122
- """
123
- SELECT * FROM collection_search(:req::text::jsonb);
124
- """ ,
125
- req = search_request_json ,
126
- )
127
- collections_result : Collections = await conn .fetchval (q , * p )
128
- except InvalidDatetimeFormatError as e :
129
- raise InvalidQueryParameter (
130
- f"Datetime parameter { search_request .datetime } is invalid."
131
- ) from e
86
+ async with request .app .state .get_connection (request , "r" ) as conn :
87
+ q , p = render (
88
+ """
89
+ SELECT * FROM collection_search(:req::text::jsonb);
90
+ """ ,
91
+ req = json .dumps (clean_args ),
92
+ )
93
+ collections_result : Collections = await conn .fetchval (q , * p )
132
94
133
95
next : Optional [str ] = None
134
96
prev : Optional [str ] = None
0 commit comments