1717from functools import lru_cache , partial
1818from pathlib import Path
1919from typing import Awaitable , Callable , Optional , Union
20- from urllib .parse import urlparse , urlunparse
2120
2221import requests
2322
@@ -76,9 +75,16 @@ def authorised_requests() -> tuple[Callable, Callable, Callable, Callable]:
7675requests .get , requests .post , requests .put , requests .delete = authorised_requests ()
7776
7877
79- def capture_post (url : str , json : Union [dict , list ] = {}) -> requests .Response :
78+ def capture_post (
79+ base_url : str ,
80+ router_name : str ,
81+ function_name : str ,
82+ data : Optional [dict ] = None ,
83+ ** kwargs ,
84+ ) -> requests .Response :
85+ url = f"{ base_url } { url_path_for (router_name , function_name , ** kwargs )} "
8086 try :
81- response = requests .post (url , json = json )
87+ response = requests .post (url , json = data )
8288 except Exception as e :
8389 logger .error (f"Exception encountered in post to { url } : { e } " )
8490 response = requests .Response ()
@@ -87,20 +93,22 @@ def capture_post(url: str, json: Union[dict, list] = {}) -> requests.Response:
8793 f"Response to post to { url } with data { json } had status code "
8894 f"{ response .status_code } . The reason given was { response .reason } "
8995 )
90- split_url = urlparse (url )
9196 client_config = read_config ()
92- failure_url = urlunparse (
93- split_url ._replace (
94- path = url_path_for (
95- "session_control.router" ,
96- "failed_client_post" ,
97- instrument_name = client_config ["Murfey" ]["instrument_name" ],
98- )
99- )
97+ failure_address = url_path_for (
98+ "session_control.router" ,
99+ "failed_client_post" ,
100+ instrument_name = client_config ["Murfey" ]["instrument_name" ],
100101 )
102+ failure_url = f"{ base_url } { failure_address } "
101103 try :
102104 resend_response = requests .post (
103- failure_url , json = {"url" : url , "data" : json }
105+ failure_url ,
106+ json = {
107+ "router_name" : router_name ,
108+ "function_name" : function_name ,
109+ "data" : data ,
110+ "kwargs" : kwargs ,
111+ },
104112 )
105113 except Exception as e :
106114 logger .error (f"Exception encountered in post to { failure_url } : { e } " )
@@ -113,7 +121,10 @@ def capture_post(url: str, json: Union[dict, list] = {}) -> requests.Response:
113121 return response
114122
115123
116- def capture_get (url : str ) -> requests .Response :
124+ def capture_get (
125+ base_url : str , router_name : str , function_name : str , ** kwargs
126+ ) -> requests .Response :
127+ url = f"{ base_url } { url_path_for (router_name , function_name , ** kwargs )} "
117128 try :
118129 response = requests .get (url )
119130 except Exception as e :
@@ -127,15 +138,18 @@ def capture_get(url: str) -> requests.Response:
127138 return response
128139
129140
130- def capture_delete (url : str ) -> requests .Response :
141+ def capture_delete (
142+ base_url : str , router_name : str , function_name : str , ** kwargs
143+ ) -> requests .Response :
144+ url = f"{ base_url } { url_path_for (router_name , function_name , ** kwargs )} "
131145 try :
132146 response = requests .delete (url )
133147 except Exception as e :
134148 logger .error (f"Exception encountered in delete of { url } : { e } " )
135149 response = requests .Response ()
136150 if response and response .status_code != 200 :
137151 logger .warning (
138- f"Response to delete of { url } had status code { response .status_code } . "
152+ f"Response to delete on { url } had status code { response .status_code } . "
139153 f"The reason given was { response .reason } "
140154 )
141155 return response
0 commit comments