Skip to content

Commit b1231c5

Browse files
committed
Change how captures take args
1 parent 2d12980 commit b1231c5

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

src/murfey/util/client.py

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from functools import lru_cache, partial
1818
from pathlib import Path
1919
from typing import Awaitable, Callable, Optional, Union
20-
from urllib.parse import urlparse, urlunparse
2120

2221
import requests
2322

@@ -76,9 +75,16 @@ def authorised_requests() -> tuple[Callable, Callable, Callable, Callable]:
7675
requests.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

Comments
 (0)