def get_steps():
    if not flask_login.current_user.is_authenticated:
        return redirect(url_for('main.login'))
    else:
        data = ''
        file_path = '/export/sc-ehealth01/fitbit/fitbit-data-collection/data/'
        fitbit_creds = get_user_fitbit_credentials(flask_login.current_user.id)
        if fitbit_creds:
            with fitbit_client(fitbit_creds) as client:
                try:
                    profile_response = client.user_profile_get()
                    user_profile = "{} UserId: {} has been on fitbit since {}".format(
                        profile_response['user']['fullName'],
                        profile_response['user']['encodedId'],
                        profile_response['user']['memberSince'])

                    #client.subscription(flask_login.current_user.id, '100')
                    ls = client.time_series('activities/steps', period='1y')
                    r = json.dumps(ls)
                    d = json.loads(r)
                    data = json_normalize(d['activities-steps'])

                    df = pd.DataFrame()
                    df = df.append(
                        {
                            'fitbit_user_id':
                            profile_response['user']['encodedId'],
                            'full_name': profile_response['user']['fullName'],
                            'json_value': d
                        },
                        ignore_index=True)

                    #f = ls['activities-steps']
                    #df.to_csv('filename.csv', mode='a', header=False)
                    df.to_csv(file_path + 'activities_steps.csv',
                              mode='a',
                              header=False,
                              sep=',',
                              index=False,
                              encoding='utf-8')

                except BadResponse:
                    flash("Api Call Failed")

        return render_template('activities_steps.html',
                               user_profile=user_profile,
                               data=data,
                               df=df)
Beispiel #2
0
def get_daily_activity_summary_by_date():
    if not flask_login.current_user.is_authenticated:
        return redirect(url_for('main.login'))
    else:
        fitbit_creds = get_user_fitbit_credentials(flask_login.current_user.id)
        print 'fitbit_creds: ' + str(fitbit_creds)
        data = ''
        file_path = '/export/sc-ehealth01/fitbit/fitbit-data-collection/data/'
        datetime_from = request.args.get('date')
        date_object = datetime.strptime(datetime_from, '%Y-%m-%d')

        if fitbit_creds:
            with fitbit_client(fitbit_creds) as client:
                try:
                    profile_response = client.user_profile_get()
                    user_profile = "{} has been on fitbit since {}".format(
                        profile_response['user']['fullName'],
                        profile_response['user']['memberSince'])

                    ls = client.activities(date=date_object)
                    r = json.dumps(ls)
                    d = json.loads(r)
                    data = d

                    df = pd.DataFrame()
                    df = df.append(
                        {
                            'fitbit_user_id':
                            profile_response['user']['encodedId'],
                            'full_name': profile_response['user']['fullName'],
                            'json_value': d
                        },
                        ignore_index=True)

                    df.to_csv(file_path + 'daily_activity_summary.csv',
                              mode='a',
                              header=False,
                              sep=',',
                              index=False,
                              encoding='utf-8')

                except BadResponse:
                    flash("Api Call Failed")

        return render_template('daily_activity_summary.html',
                               data=ls,
                               user_profile=user_profile,
                               df=df)
Beispiel #3
0
def index():
    if not flask_login.current_user.is_authenticated:
        return redirect(url_for('main.login'))
    else:
        user_profile = "Could not access fitbit profile"
        fitbit_creds = get_user_fitbit_credentials(flask_login.current_user.id)
        if fitbit_creds:
            with fitbit_client(fitbit_creds) as client:
                try:
                    profile_response = client.user_profile_get()
                    user_profile = "{} has been on fitbit since {}".format(
                        profile_response['user']['fullName'],
                        profile_response['user']['memberSince'])
                except BadResponse:
                    flash("Api Call Failed")
        return render_template('index.html',
                               user_profile=user_profile,
                               permission_url=get_permission_screen_url())
Beispiel #4
0
def list_subscription():
    if not flask_login.current_user.is_authenticated:
        return redirect(url_for('main.login'))
    else:
        fitbit_creds = get_user_fitbit_credentials(flask_login.current_user.id)
        data = ''
        if fitbit_creds:
            with fitbit_client(fitbit_creds) as client:
                try:
                    profile_response = client.user_profile_get()
                    user_profile = "{} has been on fitbit since {}".format(
                        profile_response['user']['fullName'],
                        profile_response['user']['memberSince'])

                    ls = client.list_subscriptions()

                except BadResponse:
                    flash("Api Call Failed")

        return render_template('list-subscriptions.html', data=ls)
Beispiel #5
0
def get_calerories():
    if not flask_login.current_user.is_authenticated:
        return redirect(url_for('main.login'))
    else:
        fitbit_creds = get_user_fitbit_credentials(flask_login.current_user.id)
        data = ''
        if fitbit_creds:
            with fitbit_client(fitbit_creds) as client:
                try:
                    profile_response = client.user_profile_get()
                    user_profile = "{} has been on fitbit since {}".format(
                        profile_response['user']['fullName'],
                        profile_response['user']['memberSince'])

                    ls = client.time_series('activities/calories', period='1y')
                    r = json.dumps(ls)
                    d = json.loads(r)
                    data = json_normalize(d['activities-calories'])

                except BadResponse:
                    flash("Api Call Failed")

        return render_template('activities.html', data=data)