summaryrefslogtreecommitdiff
path: root/app/routes
diff options
context:
space:
mode:
authorstilbruch <stilbruch@protonail.com>2022-05-04 19:09:29 -0500
committerstilbruch <stilbruch@protonail.com>2022-05-04 19:09:29 -0500
commitac0463db9a00b8d5fcd570d18e86c9ba62851365 (patch)
tree9c71cf6ad0c9c6a11b01779a76bc864f5741e575 /app/routes
parent6a92fe73a176164197706965c82ea98b08bbc2bd (diff)
downloadStrengthy-ac0463db9a00b8d5fcd570d18e86c9ba62851365.tar.xz
Strengthy-ac0463db9a00b8d5fcd570d18e86c9ba62851365.zip
Progress on progress api endpoint
Diffstat (limited to 'app/routes')
-rw-r--r--app/routes/api.py33
-rw-r--r--app/routes/progress.py8
-rw-r--r--app/routes/workout.py1
3 files changed, 30 insertions, 12 deletions
diff --git a/app/routes/api.py b/app/routes/api.py
index 6a95ca2..77ebdcf 100644
--- a/app/routes/api.py
+++ b/app/routes/api.py
@@ -1,7 +1,7 @@
from app import app, db
from flask import redirect, request, jsonify
from flask_login import current_user, login_required
-from tables import Workout
+from tables import Exercise, SetRecord, Workout, WorkoutRecord
@app.route("/api/workout/delete", methods=["GET"])
@@ -20,11 +20,30 @@ def api_workout_delete():
return redirect("/home")
-@app.route("/api/progress/exercise", methods=["GET"])
+@app.route("/api/progress/exercise/<exercise_id>", methods=["GET"])
@login_required
-def api_progress_exercise():
- if "id" not in request.args:
- return redirect("/home")
+def api_progress_exercise(exercise_id=None):
+ # Get exercise from database NOTE: consider adding userid to exercise
+ exercise = (
+ db.session.query(Exercise)
+ .filter_by(id=exercise_id)
+ .join(Workout, Workout.user_id == current_user.id)
+ .first()
+ )
+ if not exercise:
+ return redirect(url_for("home"))
+
+ results = (
+ db.session.query(WorkoutRecord.id, db.func.max(SetRecord.lbs))
+ # .join(SetRecord.workout_record_id == WorkoutRecord.id)
+ .filter(
+ SetRecord.exercise_id == exercise_id,
+ WorkoutRecord.user_id == current_user.id,
+ SetRecord.workout_record_id == WorkoutRecord.id,
+ ).group_by(WorkoutRecord.id)
+ ).all()
+
+ print(results)
- # FIXME
- return jsonify()
+ # TODO doesnt work
+ return jsonify(results)
diff --git a/app/routes/progress.py b/app/routes/progress.py
index 8040fdc..7b451ed 100644
--- a/app/routes/progress.py
+++ b/app/routes/progress.py
@@ -7,12 +7,10 @@ from tables import Exercise, Workout
@app.route("/progress/exercise/<exercise_id>")
@login_required
def progress_exercise(exercise_id=None):
- # FIXME
-
exercise = (
- db.session.query(Workout, Exercise)
- .filter(Exercise.id == exercise_id)
- .filter(Workout.user_id == current_user.id)
+ db.session.query(Exercise)
+ .filter_by(id=exercise_id)
+ .join(Workout, Workout.user_id == current_user.id)
.first()
)
if not exercise:
diff --git a/app/routes/workout.py b/app/routes/workout.py
index 5eb18d9..8f58aa3 100644
--- a/app/routes/workout.py
+++ b/app/routes/workout.py
@@ -131,6 +131,7 @@ def workout_record(workout_id=None):
return redirect(url_for("home"))
else:
+ print(form.errors)
# Populate form with data
for exercise in workout.exercises:
form.exercises.append_entry(