More extensive request logging - toot - Unnamed repository; edit this file 'description' to name the repository.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit ed20c7fded6ba5dfb7124bf223d9bf9b3e213ab3
(DIR) parent c3bafd56d82823a803a8abd040daf4f7d0f8aa8b
(HTM) Author: Ivan Habunek <ivan@habunek.com>
Date: Mon, 17 Apr 2017 11:10:57 +0200
More extensive request logging
Diffstat:
toot/api.py | 62 ++++++++++++++++++++-----------
1 file changed, 40 insertions(+), 22 deletions(-)
---
(DIR) diff --git a/toot/api.py b/toot/api.py
@@ -20,12 +20,19 @@ class NotFoundError(ApiError):
pass
-def _log_request(request, prepared_request):
+def _log_request(request):
logger.debug(">>> \033[32m{} {}\033[0m".format(request.method, request.url))
- logger.debug(">>> DATA: \033[33m{}\033[0m".format(request.data))
- logger.debug(">>> FILES: \033[33m{}\033[0m".format(request.files))
logger.debug(">>> HEADERS: \033[33m{}\033[0m".format(request.headers))
+ if request.data:
+ logger.debug(">>> DATA: \033[33m{}\033[0m".format(request.data))
+
+ if request.files:
+ logger.debug(">>> FILES: \033[33m{}\033[0m".format(request.files))
+
+ if request.params:
+ logger.debug(">>> PARAMS: \033[33m{}\033[0m".format(request.params))
+
def _log_response(response):
if response.ok:
@@ -36,14 +43,34 @@ def _log_response(response):
logger.debug("<<< \033[31m{}\033[0m".format(response.content))
+def _process_response(response):
+ _log_response(response)
+
+ if not response.ok:
+ try:
+ error = response.json()['error']
+ except:
+ error = "Unknown error"
+
+ if response.status_code == 404:
+ raise NotFoundError(error)
+
+ raise ApiError(error)
+
+ response.raise_for_status()
+
+ return response.json()
+
+
def _get(app, user, url, params=None):
url = app.base_url + url
headers = {"Authorization": "Bearer " + user.access_token}
+ _log_request(Request('GET', url, headers, params=params))
+
response = requests.get(url, params, headers=headers)
- response.raise_for_status()
- return response.json()
+ return _process_response(response)
def _post(app, user, url, data=None, files=None):
@@ -54,26 +81,11 @@ def _post(app, user, url, data=None, files=None):
request = Request('POST', url, headers, files, data)
prepared_request = request.prepare()
- _log_request(request, prepared_request)
+ _log_request(request)
response = session.send(prepared_request)
- _log_response(response)
-
- if not response.ok:
- try:
- error = response.json()['error']
- except:
- error = "Unknown error"
-
- if response.status_code == 404:
- raise NotFoundError(error)
-
- raise ApiError(error)
-
- response.raise_for_status()
-
- return response.json()
+ return _process_response(response)
def create_app(base_url):
@@ -140,6 +152,12 @@ def search(app, user, query, resolve):
})
+def search_accounts(app, user, query):
+ return _get(app, user, '/api/v1/accounts/search', {
+ 'q': query,
+ })
+
+
def follow(app, user, account):
url = '/api/v1/accounts/%d/follow' % account