def get_top_level_directory(token, url_prefix): user = User.find_one({'_id': token['user_id']}) links = { 'self': { 'href': request.base_url, 'title': 'API root' }, 'dimensions.json': { 'href': '%s/dimensions.json' % (url_prefix), 'title': 'dimensions for aggregating leaf data' } } links.update({ datastream: { 'href': '%s/%s.json' % (url_prefix, datastream) } for datastream in user['external_tokens'].keys() }) links.update({ datastream['name']: { 'href': '%s/%s.json' % (url_prefix, datastream['name']) } for datastream in TimeSeriesPath.get_collection().find( { 'parent_path': None, 'user_id': token['user_id'], 'client_id': token['client_id'] }) }) return json.dumps({'_links': links})
def get_top_level_directory(token, url_prefix): user = User.find_one({'_id': token['user_id']}) links = { 'self': {'href': request.base_url, 'title': 'API root'}, 'dimensions.json': { 'href': '%s/dimensions.json' % (url_prefix), 'title': 'dimensions for aggregating leaf data' } } links.update({datastream: { 'href': '%s/%s.json' % (url_prefix, datastream) } for datastream in user['external_tokens'].keys()}) links.update({datastream['name']: { 'href': '%s/%s.json' % (url_prefix, datastream['name']) } for datastream in TimeSeriesPath.get_collection().find( {'parent_path': None, 'user_id': token['user_id'], 'client_id': token['client_id'] } ) }) return json.dumps({'_links': links})
def _provide_user(token, *args, **kwargs): user = User.find_one({'_id': token['user_id']}) return _f(user, *args, **kwargs)
def setUp(self): self.user = User.find_one(ObjectId("50e3da15ab0ddcff7dd3c187"), as_obj=True) self.username = "******" self.counter = TwitterPostCounter(self.user)
def request(self, *args, **kwargs): response = super(GoogleOAuth, self).request(*args, **kwargs) # If the token has expired, we need to request a new one and try again. # We can only do this, though, if a user was passed in. if ("error" in response.content and "message" in response.content["error"] and response.content["error"]["message"] == u'Invalid Credentials' and kwargs.get('user', False)): user = kwargs.get('user') self._logger.info("Refreshing expired token for user %s." % user['_id']) # Is there a refresh token for this user? if ('refresh_tokens' not in user or self.name not in user['refresh_tokens']): self._logger.error( "User %s does not have a refresh token. Abandoning request." % (user['_id'])) self._logger.info("Abandoned request for user %s was %s" % (user['_id'], args)) else: # Request a new access token. refresh = requests.post(self.refresh_token_url, data={ 'refresh_token': user['refresh_tokens'][self.name], 'grant_type': 'refresh_token', 'client_id': self.consumer_key, 'client_secret': self.consumer_secret }) refresh = json.loads(refresh.content) # If the user variable is not a User object, retrieve the # corresponding object. if ((not hasattr(user, 'save') or not callable(user.save)) and '_id' in user): user = User.find_one({'_id': user['_id']}, as_obj=True) # Was the request for a new token successful? if 'access_token' in refresh and refresh['access_token']: # Update the user's Google access token and save it. user['external_tokens'][ self.name] = refresh['access_token'] user.save() # Retry the original request wit the new token. kwargs['user'] = user response = super(GoogleOAuth, self).request(*args, **kwargs) else: # If the request for a new token was not successful, log # Google's response so we can debug later. self._logger.error( "Tried to refresh token for user %s. Instead got: %s" % (user['_id'], response.content)) return response
def setUp(self): self.user = User.find_one(ObjectId("50e3da15ab0ddcff7dd3c187"), as_obj=True) self.username = '******' self.counter = TwitterPostCounter(self.user)
def request(self, *args, **kwargs): response = super(GoogleOAuth, self).request(*args, **kwargs) # If the token has expired, we need to request a new one and try again. # We can only do this, though, if a user was passed in. if ("error" in response.content and "message" in response.content["error"] and response.content["error"]["message"] == u'Invalid Credentials' and kwargs.get('user', False)): user = kwargs.get('user') self._logger.info( "Refreshing expired token for user %s." % user['_id']) # Is there a refresh token for this user? if ('refresh_tokens' not in user or self.name not in user['refresh_tokens']): self._logger.error( "User %s does not have a refresh token. Abandoning request." % ( user['_id']) ) self._logger.info("Abandoned request for user %s was %s" % ( user['_id'], args)) else: # Request a new access token. refresh = requests.post( self.refresh_token_url, data = { 'refresh_token': user['refresh_tokens'][self.name], 'grant_type': 'refresh_token', 'client_id': self.consumer_key, 'client_secret': self.consumer_secret } ) refresh = json.loads(refresh.content) # If the user variable is not a User object, retrieve the # corresponding object. if ((not hasattr(user, 'save') or not callable(user.save)) and '_id' in user): user = User.find_one({'_id': user['_id']}, as_obj = True) # Was the request for a new token successful? if 'access_token' in refresh and refresh['access_token']: # Update the user's Google access token and save it. user['external_tokens'][self.name] = refresh['access_token'] user.save() # Retry the original request wit the new token. kwargs['user'] = user response = super(GoogleOAuth, self).request(*args, **kwargs) else: # If the request for a new token was not successful, log # Google's response so we can debug later. self._logger.error( "Tried to refresh token for user %s. Instead got: %s" % ( user['_id'], response.content) ) return response
def _provide_user(token, *args, **kwargs): user = User.find_one({'_id': token['user_id']}) return _f(user, *args, **kwargs)