From 0fa9abde4c5a92e09e5ee7c50e93ce83338f8c7f Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Tue, 13 Jul 2021 14:35:16 +0530 Subject: [PATCH 1/2] feat: add put request to integration utils --- frappe/integrations/utils.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/frappe/integrations/utils.py b/frappe/integrations/utils.py index 09c20568b5..565bbbad4a 100644 --- a/frappe/integrations/utils.py +++ b/frappe/integrations/utils.py @@ -47,6 +47,27 @@ def make_post_request(url, auth=None, headers=None, data=None): frappe.log_error() raise exc +def make_put_request(url, auth=None, headers=None, data=None): + if not auth: + auth = '' + if not data: + data = {} + if not headers: + headers = {} + + try: + s = get_request_session() + frappe.flags.integration_request = s.put(url, data=data, auth=auth, headers=headers) + frappe.flags.integration_request.raise_for_status() + + if frappe.flags.integration_request.headers.get("content-type") == "text/plain; charset=utf-8": + return parse_qs(frappe.flags.integration_request.text) + + return frappe.flags.integration_request.json() + except Exception as exc: + frappe.log_error() + raise exc + def create_request_log(data, integration_type, service_name, name=None, error=None): if isinstance(data, str): data = json.loads(data) From d6b4974bdebb669d0e4c5f4dd0a5c18aa6813af0 Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Sat, 31 Jul 2021 11:56:30 +0530 Subject: [PATCH 2/2] refactor: use session.request to commonify code --- frappe/integrations/utils.py | 55 ++++++++---------------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/frappe/integrations/utils.py b/frappe/integrations/utils.py index 565bbbad4a..b897a35062 100644 --- a/frappe/integrations/utils.py +++ b/frappe/integrations/utils.py @@ -8,35 +8,14 @@ from urllib.parse import parse_qs from frappe.utils import get_request_session from frappe import _ -def make_get_request(url, auth=None, headers=None, data=None): - if not auth: - auth = '' - if not data: - data = {} - if not headers: - headers = {} +def make_request(method, url, auth=None, headers=None, data=None): + auth = auth or '' + data = data or {} + headers = headers or {} try: s = get_request_session() - frappe.flags.integration_request = s.get(url, data={}, auth=auth, headers=headers) - frappe.flags.integration_request.raise_for_status() - return frappe.flags.integration_request.json() - - except Exception as exc: - frappe.log_error(frappe.get_traceback()) - raise exc - -def make_post_request(url, auth=None, headers=None, data=None): - if not auth: - auth = '' - if not data: - data = {} - if not headers: - headers = {} - - try: - s = get_request_session() - frappe.flags.integration_request = s.post(url, data=data, auth=auth, headers=headers) + frappe.flags.integration_request = s.request(method, url, data=data, auth=auth, headers=headers) frappe.flags.integration_request.raise_for_status() if frappe.flags.integration_request.headers.get("content-type") == "text/plain; charset=utf-8": @@ -47,26 +26,14 @@ def make_post_request(url, auth=None, headers=None, data=None): frappe.log_error() raise exc -def make_put_request(url, auth=None, headers=None, data=None): - if not auth: - auth = '' - if not data: - data = {} - if not headers: - headers = {} +def make_get_request(url, **kwargs): + return make_request('GET', url, **kwargs) - try: - s = get_request_session() - frappe.flags.integration_request = s.put(url, data=data, auth=auth, headers=headers) - frappe.flags.integration_request.raise_for_status() +def make_post_request(url, **kwargs): + return make_request('POST', url, **kwargs) - if frappe.flags.integration_request.headers.get("content-type") == "text/plain; charset=utf-8": - return parse_qs(frappe.flags.integration_request.text) - - return frappe.flags.integration_request.json() - except Exception as exc: - frappe.log_error() - raise exc +def make_put_request(url, **kwargs): + return make_request('PUT', url, **kwargs) def create_request_log(data, integration_type, service_name, name=None, error=None): if isinstance(data, str):