def __init__(self, client_key, client_secret, oauth2=False, system=US, **kwargs): """ oauth1: Fitbit(<key>, <secret>, resource_owner_key=<key>, resource_owner_secret=<key>) oauth2: Fitbit(<id>, <secret>, oauth2=True, access_token=<token>, refresh_token=<token>) """ self.system = system if oauth2: self.client = FitbitOauth2Client(client_key, client_secret, **kwargs) else: self.client = FitbitOauthClient(client_key, client_secret, **kwargs) # All of these use the same patterns, define the method for accessing # creating and deleting records once, and use curry to make individual # Methods for each for resource in Fitbit.RESOURCE_LIST: underscore_resource = resource.replace('/', '_') setattr(self, underscore_resource, curry(self._COLLECTION_RESOURCE, resource)) if resource not in ['body', 'glucose']: # Body and Glucose entries are not currently able to be deleted setattr(self, 'delete_%s' % underscore_resource, curry( self._DELETE_COLLECTION_RESOURCE, resource)) for qualifier in Fitbit.QUALIFIERS: setattr(self, '%s_activities' % qualifier, curry(self.activity_stats, qualifier=qualifier)) setattr(self, '%s_foods' % qualifier, curry(self._food_stats, qualifier=qualifier))
def __init__(self, client_key, client_secret, system=US, client=None, **kwargs): """ oauth1: Fitbit(<key>, <secret>, resource_owner_key=<key>, resource_owner_secret=<key>) oauth2: Fitbit(<id>, <secret>, oauth2=True, access_token=<token>, refresh_token=<token>) """ self.system = system self.client = client or FitbitOauth2Client(client_key, client_secret, **kwargs) # All of these use the same patterns, define the method for accessing # creating and deleting records once, and use curry to make individual # Methods for each for resource in Fitbit.RESOURCE_LIST: underscore_resource = resource.replace('/', '_') setattr(self, 'get_%s' % underscore_resource, curry(self._collection_resource, resource)) # TODO: This is outdated if resource not in ['body/log/fat', 'body/log/weight', 'glucose']: # Body and Glucose entries are not currently able to be deleted setattr(self, 'delete_%s' % underscore_resource, curry(self._collection_resource, resource)) for qualifier in Fitbit.QUALIFIERS: setattr(self, 'get_%s_activities' % qualifier, curry(self._get_activity_stats, qualifier=qualifier))
def __init__(self, consumer_key, consumer_secret, system=US, **kwargs): self.client = FitbitOauthClient(consumer_key, consumer_secret, **kwargs) self.SYSTEM = system # All of these use the same patterns, define the method for accessing # creating and deleting records once, and use curry to make individual # Methods for each for resource in self._resource_list: setattr(self, resource, curry(self._COLLECTION_RESOURCE, resource)) if resource not in ['body', 'glucose']: # Body and Glucose entries are not currently able to be deleted setattr(self, 'delete_%s' % resource, curry( self._DELETE_COLLECTION_RESOURCE, resource)) for qualifier in self._qualifiers: setattr(self, '%s_activities' % qualifier, curry(self.activity_stats, qualifier=qualifier)) setattr(self, '%s_foods' % qualifier, curry(self._food_stats, qualifier=qualifier))