diff --git a/frappe/integrations/utils.py b/frappe/integrations/utils.py index c350fdb280..70140d0a32 100644 --- a/frappe/integrations/utils.py +++ b/frappe/integrations/utils.py @@ -6,7 +6,6 @@ import json from urllib.parse import parse_qs import frappe -from frappe import _ from frappe.utils import get_request_session @@ -20,14 +19,15 @@ def make_request(method: str, url: str, auth=None, headers=None, data=None, json response = frappe.flags.integration_request = s.request( method, url, data=data, auth=auth, headers=headers, json=json, params=params ) - response.raise_for_status() - - if response.headers.get("content-type") == "text/plain; charset=utf-8": + content_type = response.headers.get("content-type") + if content_type == "text/plain; charset=utf-8": return parse_qs(response.text) - elif not response.text: - return + elif content_type.startswith("application/") and content_type.split(";")[0].endswith("json"): + return response.json() + elif response.text: + return response.text else: - response.json() + return except Exception as exc: frappe.log_error() raise exc