From 161b453ce7d3ac7441bf74f11ea00e0a09478725 Mon Sep 17 00:00:00 2001 From: samthaman <7992371+samthaman@users.noreply.github.com> Date: Tue, 13 Apr 2021 22:07:15 -0700 Subject: [PATCH] First crack at some basic logging around request/response process. Currently problematic queries are difficult to debug, this should make it easier. --- shopify/base.py | 7 ++++++- shopify/session.py | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/shopify/base.py b/shopify/base.py index 47f40cb3..caf95c3b 100644 --- a/shopify/base.py +++ b/shopify/base.py @@ -7,9 +7,10 @@ import sys from six.moves import urllib import six - +import logging from shopify.collection import PaginatedCollection from pyactiveresource.collection import Collection +log = logging.getLogger(__name__) # Store the response from the last request in the connection object @@ -23,10 +24,14 @@ def __init__(self, site, user=None, password=None, timeout=None, format=formats. def _open(self, *args, **kwargs): self.response = None try: + log.debug(f"Request: {args, kwargs}") self.response = super(ShopifyConnection, self)._open(*args, **kwargs) + log.debug(f'Response {self.response}') except pyactiveresource.connection.ConnectionError as err: self.response = err.response + log.exception(f"Exception with request: {args, kwargs}, Response: {self.response}") raise + return self.response diff --git a/shopify/session.py b/shopify/session.py index 39ce5f7b..385e80e5 100644 --- a/shopify/session.py +++ b/shopify/session.py @@ -13,6 +13,9 @@ from shopify.api_access import ApiAccess from shopify.api_version import ApiVersion, Release, Unstable import six +import logging + +log = logging.getLogger(__name__) class ValidationException(Exception): @@ -71,10 +74,13 @@ def request_token(self, params): url = "https://%s/admin/oauth/access_token?" % self.url query_params = dict(client_id=self.api_key, client_secret=self.secret, code=code) request = urllib.request.Request(url, urllib.parse.urlencode(query_params).encode("utf-8")) + log.debug(f"Request URL: {url}, query params: {query_params}") response = urllib.request.urlopen(request) + logging.debug(f"Response: {response}") if response.code == 200: json_payload = json.loads(response.read().decode("utf-8")) + log.debug(f"Response: {json_payload}") self.token = json_payload["access_token"] self.access_scopes = json_payload["scope"]