From a3c6d72d0bf5d35c470906a4efc502516ad26f64 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 8 Jul 2018 21:13:34 +0200 Subject: [PATCH] fix token refresh bug --- rowers/imports.py | 10 ++++++---- rowers/runkeeperstuff.py | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/rowers/imports.py b/rowers/imports.py index 885fb1e9..7a1a1c49 100644 --- a/rowers/imports.py +++ b/rowers/imports.py @@ -78,12 +78,12 @@ def imports_open(user,oauth_data): token = getattr(r,oauth_data['tokenname']) try: refreshtoken = getattr(r,oauth_data['refreshtokenname']) - except (AttributeError,KeyError): + except (TypeError,AttributeError,KeyError): refreshtoken = None try: tokenexpirydate = getattr(r,oauth_data['expirydatename']) - except (AttributeError,KeyError): + except (TypeError,AttributeError,KeyError): tokenexpirydate = None if (token == '') or (token is None): @@ -242,8 +242,10 @@ def imports_token_refresh(user,tokenname,refreshtokenname,expirydatename): expirydatetime = timezone.now()+timedelta(seconds=expires_in) setattr(r,tokenname,access_token) - setattr(r,expirydatename,expirydatetime) - setattr(r,refreshtokenname,refresh_token) + if expirydatename is not None: + setattr(r,expirydatename,expirydatetime) + if refreshtokenname is not None: + setattr(r,refreshtokenname,refresh_token) r.save() return r.sporttrackstoken diff --git a/rowers/runkeeperstuff.py b/rowers/runkeeperstuff.py index 0ef8967e..ba7b8548 100644 --- a/rowers/runkeeperstuff.py +++ b/rowers/runkeeperstuff.py @@ -15,6 +15,8 @@ oauth_data = { 'autorization_uri': "https://www.runkeeper.com/opps/authorize", 'content_type': 'application/x-www-form-urlencoded', 'tokenname': 'runkeepertoken', + 'refreshtokenname': None, + 'expirydatename': None, 'bearer_auth': True, 'base_url': "https://runkeeper.com/apps/token", }