From 1f067d71d7a776604c473e8cd0925c33d84e6b6e Mon Sep 17 00:00:00 2001 From: pro100ton Date: Wed, 15 Jan 2025 23:25:26 +0300 Subject: [PATCH] Create method for exercises of a training --- dbapi/repositories.py | 11 ++++++++++- main.py | 7 +++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/dbapi/repositories.py b/dbapi/repositories.py index 251adaf..60b9809 100644 --- a/dbapi/repositories.py +++ b/dbapi/repositories.py @@ -1,4 +1,4 @@ -from sqlalchemy import create_engine, insert +from sqlalchemy import create_engine, insert, select from sqlalchemy.engine.base import Engine from datetime import date from dbapi.tables import training, exercise, approach @@ -51,6 +51,15 @@ class ExerciseRepository(DatabaseInterfasesMixin): conn.commit() return inserted_entry_pk + def get_exercises_from_training(self, training_pk: int): + """Method for getting rows of exercises, linked to training by its PK + + Args: + training_pk: Training table primary key + """ + statement = select(exercise).where(exercise.c.Training == training_pk) + print(f"Exercises SQL statement: {statement}") + class ApproachRepository(DatabaseInterfasesMixin): """Approach table repository""" diff --git a/main.py b/main.py index f9daa02..b2098f1 100644 --- a/main.py +++ b/main.py @@ -4,7 +4,7 @@ import os from typing import Dict, List from sqlalchemy import Table, create_engine, text, insert from dotenv import load_dotenv -from dbapi.connector import ApproachRepository, ExerciseRepository, TrainingRepository +from dbapi.repositories import ApproachRepository, ExerciseRepository, TrainingRepository from dbapi.tables import metadata_obj, training, exercise, approach from obsidian.notes_parser import parse_training_data, remap_unique_exercises from apple.notes_parser import parse_training_data as apple_parse_training_data @@ -60,7 +60,6 @@ for train in trainings: if not train: continue else: - print("-------------------------\n" * 2) print(train) new_training_pk: int = TrainingRepository(engine).create_training(train.date) for exr in train.exercises: @@ -73,6 +72,10 @@ for train in trainings: exercise_pk=new_exercise_pk, weight=appr.weight, reps=appr.reps ) + +print("-------------------------\n" * 2) +print("-------------------------\n" * 2) +ExerciseRepository(engine=engine).get_exercises_from_training(1) # ----- # Calculating unique exercises for obsidian