Skip to content

Commit 9ec690b

Browse files
SP-874 Support "errors" array
1 parent 8f3b96e commit 9ec690b

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

src/bitpay/clients/response_parser.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,27 @@ def response_to_json_string(response: Response) -> Any:
3838
)
3939

4040
if "errors" in response_obj:
41-
message = ""
41+
final_message = ""
4242
for error in response_obj["errors"]:
43-
if message == "":
44-
message += str(error["error"])
43+
error_value = error.get('error', '')
44+
param_value = error.get('param', '')
45+
46+
if error_value.endswith('.'):
47+
error_value = error_value[:-1]
48+
49+
if error_value:
50+
result = f"{error_value} {param_value}".strip()
4551
else:
46-
message += " " + str(error["error"])
47-
BitPayExceptionProvider.throw_api_exception_with_message(message)
52+
result = param_value.strip()
53+
54+
if not result.endswith('.'):
55+
result += '.'
56+
57+
if not final_message == "":
58+
result = " " + result
59+
60+
final_message += result
61+
BitPayExceptionProvider.throw_api_exception_with_message(final_message)
4862

4963
if "success" in response_obj:
5064
return response_obj["success"]

tests/unit/clients/test_response_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ def test_handle_multiple_errors(mocker):
2626
response.json.return_value = response_json
2727
ResponseParser.response_to_json_string(response)
2828

29-
assert str(exc_info.value) == "Missing required parameter. Missing required parameter."
29+
assert str(exc_info.value) == "Missing required parameter price. Missing required parameter currency."

0 commit comments

Comments
 (0)