From b291779f36dea88f67eeaf92f56c60d3ad29b280 Mon Sep 17 00:00:00 2001 From: Jesse Kretschmer Date: Tue, 26 Sep 2023 17:46:22 +0200 Subject: [PATCH] Raise when JSON body contains errors During my use of this library, found many occasions wherein the server would respond with a 200 status code, but the JSON body would contain errors. This should be raised as an error for the end-user to see. --- umapi_client/connection.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/umapi_client/connection.py b/umapi_client/connection.py index 03a1836..c6de33d 100644 --- a/umapi_client/connection.py +++ b/umapi_client/connection.py @@ -44,12 +44,16 @@ class APIResult: def __init__(self, result=None, success=False, timeout=None): self.result = result + try: + self.result_details = result.json() + except ValueError: + self.result_details = {} self.success = success self.timeout = timeout self.status_code = result.status_code if hasattr(result, 'status_code') else 'Error' def check_result(self): - if self.result.status_code in self.success_codes: + if self.result.status_code in self.success_codes and not self.result_details.get('errors'): self.success = True return self if self.result.status_code in self.timeout_codes: