From 488f3988ea17fc7a7be149e7e4105e4e0dd247e6 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Sat, 10 Feb 2018 19:44:41 -0500 Subject: [PATCH] Handle weekend errors --- piker/brokers/questrade.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/piker/brokers/questrade.py b/piker/brokers/questrade.py index 950b7070..f956cc11 100644 --- a/piker/brokers/questrade.py +++ b/piker/brokers/questrade.py @@ -40,7 +40,8 @@ def resproc( try: data = resp.json() except json.decoder.JSONDecodeError: - log.exception(f"Failed to process {resp}") + log.exception(f"Failed to process {resp}:\n{resp.text}") + raise QuestradeError(resp.text) else: log.debug(f"Received json contents:\n{colorize_json(data)}") @@ -124,8 +125,12 @@ class Client: try: data = await self._new_auth_token() except QuestradeError as qterr: - # likely config ``refresh_token`` is expired - if qterr.args[0].decode() == 'Bad Request': + if "We're making some changes" in qterr.args[0]: + # API service is down + raise QuestradeError("API is down for maintenance") + + elif qterr.args[0].decode() == 'Bad Request': + # likely config ``refresh_token`` is expired _token_from_user(self._conf) self._apply_config(self._conf) data = await self._new_auth_token()