Files
workout/features/exercises.py
2024-11-04 16:46:22 +11:00

32 lines
1.3 KiB
Python

class Exercises:
def __init__(self, db_connection_method):
self.execute = db_connection_method
def get(self, query):
# Add wildcards to the query
search_query = f"%{query}%"
exercises = self.execute("SELECT exercise_id, name FROM exercise WHERE LOWER(name) LIKE LOWER(%s) ORDER BY name ASC;", [search_query])
return exercises
def get_exercise(self, exercise_id):
exercise = self.execute("SELECT exercise_id, name FROM exercise WHERE exercise_id=%s;", [exercise_id], one=True)
return exercise
def update_exercise_name(self, exercise_id, updated_name):
sql = "UPDATE exercise SET name = %s WHERE exercise_id = %s;"
params = [updated_name, exercise_id]
self.execute(sql, params)
updated_exercise = self.get_exercise(exercise_id)
return updated_exercise
def delete_exercise(self, exercise_id):
self.execute('DELETE FROM exercise WHERE exercise_id=%s', [
exercise_id], commit=True)
def add_exercise(self, name):
result = self.execute('INSERT INTO exercise (name) VALUES (%s) RETURNING exercise_id', [name], commit=True, one=True)
exercise_id = result['exercise_id']
new_exercise = self.get_exercise(exercise_id)
return new_exercise