From 286e7a705d5e3ae05f9f207818f30e9bd3428662 Mon Sep 17 00:00:00 2001 From: Francxk Date: Mon, 11 Nov 2013 21:44:34 +0100 Subject: [PATCH] Add get_full_oauth_token. it gives access to all attribute like expires_in.. Use json request parser --- moves/_moves.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/moves/_moves.py b/moves/_moves.py index 524eeba..07395a1 100644 --- a/moves/_moves.py +++ b/moves/_moves.py @@ -1,4 +1,3 @@ -import json import urllib import requests import types @@ -32,11 +31,6 @@ def __init__(self, client_id=None, client_secret=None, self.use_app = use_app self._last_headers = None - def parse_response(self, response): - """Parse JSON API responses.""" - - return json.loads(response.text) - def build_oauth_url(self, redirect_uri=None, scope="activity location"): params = { 'client_id': self.client_id, @@ -53,8 +47,10 @@ def build_oauth_url(self, redirect_uri=None, scope="activity location"): encoded = urllib.urlencode(params).replace('+', '%20') return "%s?%s" % (self.auth_url, encoded) - def get_oauth_token(self, code, **kwargs): - + def get_full_oauth_token(self, code, **kwargs): + ''' + Get full token info. token, expires_in... + ''' params = { 'client_id': self.client_id, 'client_secret': self.client_secret, @@ -65,7 +61,15 @@ def get_oauth_token(self, code, **kwargs): if 'redirect_uri' in kwargs: params['redirect_uri'] = kwargs['redirect_uri'] response = requests.post(self.token_url, params=params) - response = json.loads(response.content) + + return response.json() + + + def get_oauth_token(self, code, **kwargs): + ''' + Get access token + ''' + response = self.get_full_oauth_token(code, **kwargs) try: return response['access_token'] except: @@ -79,7 +83,7 @@ def tokeninfo(self): } response = requests.get(self.tokeninfo_url, params=params) - response = json.loads(response.content) + response = response.json() try: return response except: @@ -124,12 +128,10 @@ def api(self, path, method='GET', **kwargs): return resp def get(self, path, **params): - return self.parse_response( - self.api(path, 'GET', params=params)) + return self.api(path, 'GET', params=params).json() def post(self, path, **data): - return self.parse_response( - self.api(path, 'POST', data=data)) + return self.api(path, 'POST', data=data).json() def set_first_date(self): if not self.first_date: @@ -149,9 +151,7 @@ def closure(*path, **params): 'Accesses the /%s API endpoints.' path = list(path) path.insert(0, base_path) - return self.parse_response( - self.api('/'.join(path), 'GET', params=params) - ) + return self.api('/'.join(path), 'GET', params=params).json() # Clone a new method with the correct name and doc string. retval = types.FunctionType(