@@ -228,25 +228,43 @@ def delete(self, request, *args, **kwargs):
228228
229229 @require_switch (ENABLE_RAW_METRICS )
230230 def get (self , request , * args , djelme_backend_name , url_path , ** kwargs ):
231- connection = self ._get_es_connection (djelme_backend_name )
232- _response = connection .transport .perform_request ('GET' , f'/{ url_path } ' )
233- return JsonResponse (_response if isinstance (_response , dict ) else _response .body )
231+ _response_body = self ._do_es_request (
232+ djelme_backend_name ,
233+ method = 'GET' ,
234+ path = url_path ,
235+ qp = request .GET ,
236+ )
237+ return JsonResponse (_response_body )
234238
235239 @require_switch (ENABLE_RAW_METRICS )
236240 def post (self , request , * args , djelme_backend_name , url_path , ** kwargs ):
237- connection = self ._get_es_connection (djelme_backend_name )
238- body = json .loads (request .body )
239- _response = connection .transport .perform_request ('POST' , f'/{ url_path } ' , body = body )
240- return JsonResponse (_response if isinstance (_response , dict ) else _response .body )
241+ _response_body = self ._do_es_request (
242+ djelme_backend_name ,
243+ method = 'POST' ,
244+ path = url_path ,
245+ qp = request .GET ,
246+ body = json .loads (request .body ),
247+ )
248+ return JsonResponse (_response_body )
241249
242250 @require_switch (ENABLE_RAW_METRICS )
243251 def put (self , request , * args , djelme_backend_name , url_path , ** kwargs ):
244- connection = self ._get_es_connection (djelme_backend_name )
245- body = json .loads (request .body )
246- _response = connection .transport .perform_request ('PUT' , f'/{ url_path } ' , body = body )
247- return JsonResponse (_response if isinstance (_response , dict ) else _response .body )
252+ _response_body = self ._do_es_request (
253+ djelme_backend_name ,
254+ method = 'PUT' ,
255+ path = url_path ,
256+ qp = request .GET ,
257+ body = json .loads (request .body ),
258+ )
259+ return JsonResponse (_response_body )
260+
261+ def _do_es_request (self , djelme_backend_name , method , path , qp , body = None ):
262+ _client = self ._get_es_client (djelme_backend_name )
263+ _perform_fn = getattr (_client , 'perform_request' , None ) or _client .transport .perform_request
264+ _response = _perform_fn (method , f'/{ path } ' , params = qp .dict (), body = body )
265+ return _response if isinstance (_response , dict ) else _response .body
248266
249- def _get_es_connection (self , djelme_backend_name ):
267+ def _get_es_client (self , djelme_backend_name ):
250268 try :
251269 _backend = djelme_registry .get_backend (djelme_backend_name )
252270 except LookupError :
0 commit comments