def _profile(): user_id = current_user.id form = ProfileForm() form.periodicity.choices = [(p.name, p.value) for p in ReportPeriodicity] form.password.render_kw = {'placeholder': 'YOUR OLD PASSWORD'} if request.method == 'POST' and form.validate_on_submit(): new_data = get_modified_data(form) if new_data is not {}: try: r = put_request_retry(users_endpoint(), user_id, new_data) code = r.status_code if code != 204: return abort(code) except requests.exceptions.RequestException as err: print(err) return abort(503) new_password = form.password.data if new_password: current_user.set_password(new_password) db.session.commit() try: r = get_request_retry(users_endpoint(), user_id) code = r.status_code if code == 200: user = r.json() form.email.data = user['email'] form.firstname.data = user['firstname'] form.lastname.data = user['lastname'] form.age.data = user['age'] form.weight.data = user['weight'] form.max_hr.data = user['max_hr'] form.rest_hr.data = user['rest_hr'] form.vo2max.data = user['vo2max'] form.periodicity.data = user['report_periodicity'] return render_template("profile.html", form=form) else: return abort(code) except requests.exceptions.RequestException as err: print(err) return abort(503) return abort(400)
def try_create_user(new_user, params): try: r = post_request_retry(users_endpoint(), params=params) code = r.status_code if code == 204: login_user(new_user) return redirect(url_for('home.index')) else: return abort_create_user(new_user, code) except requests.exceptions.RequestException as err: print(err) return abort_create_user(new_user, 503)
def try_delete_user(user): try: r = delete_request_retry(users_endpoint(), user.get_id()) code = r.status_code if code == 204: db.session.delete(user) db.session.commit() return redirect(url_for('home.index')) else: return abort(code) except requests.exceptions.RequestException as err: print(err) return abort(503)
def index(): strava_auth_url = _strava_auth_url(home.app.config) average_speed = None runs = None if current_user is not None and hasattr(current_user, 'id'): user_id = current_user.id # Average Speed try: r = get_request_retry(users_endpoint(user_id), 'average') code = r.status_code if code == 200: result = r.json() average_speed = result['average_speed'] else: return abort(code) except requests.exceptions.RequestException as err: print(err) return abort(503) # Runs try: params = {'page': 0, "per_page": 10} r = get_request_retry(runs_endpoint(user_id), params=params) code = r.status_code if code == 200: runs = r.json() else: return abort(code) except requests.exceptions.RequestException as err: print(err) return abort(503) return render_template('index.html', strava_auth_url=strava_auth_url, average_speed=average_speed, runs=runs)
def check_runner_id(runner_id, send_get=True): if int(runner_id) <= 0: abort(400, 'Invalid runner_id') if send_get: if db.session.query(Last_Run).filter( Last_Run.runner_id == runner_id).count() != 0: return try: response = get_request_retry(users_endpoint(runner_id)) status_code = response.status_code except requests.exceptions.RequestException as ex: abort(503, str(ex)) if status_code != 200: abort(status_code, response.json().get('message')) db_last_run = Last_Run() db_last_run.runner_id = runner_id db.session.add(db_last_run) db.session.commit()
def _strava_auth(): code = request.args.get('code') client = Client() xc = client.exchange_code_for_token strava_token = xc(client_id=auth.app.config['STRAVA_CLIENT_ID'], client_secret=auth.app.config['STRAVA_CLIENT_SECRET'], code=code) try: user_id = current_user.id params = {'id': user_id, 'strava_token': strava_token} r = put_request_retry(users_endpoint(), user_id, body=params) code = r.status_code if code == 204: current_user.set_strava_authorized() db.session.commit() return redirect(url_for('home.index')) else: return abort(400) except requests.exceptions.RequestException as err: print(err) return abort(503) return redirect('/')
def check_user(runner_id): r = get_request_retry(users_endpoint(), runner_id) result = r.json() return 'id' in result