62 lines
2.1 KiB
Python
62 lines
2.1 KiB
Python
from datetime import datetime
|
|
import logging
|
|
from fastapi import APIRouter
|
|
|
|
from app.core.database.connection import SQLiteExecutor
|
|
from app.core.database.models.approach import ApproachOps
|
|
from app.core.database.models.training import TrainingOps
|
|
from app.core.database.models.exercise import ExerciseOps
|
|
from app.core.dto.training import TrainingDTO
|
|
from app.core.parsers.obsidian import parse_training_data
|
|
|
|
|
|
sqllite_executor = SQLiteExecutor()
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/obsidian/")
|
|
async def obsidian_trainings_list():
|
|
return {"data": parse_training_data()}
|
|
|
|
|
|
@router.get("/test/create/")
|
|
async def create_sample_training():
|
|
test_training = TrainingDTO(date=datetime.now().date(), trainer="Stepka")
|
|
training_executor = TrainingOps(sqllite_executor)
|
|
result_id = await training_executor.create(test_training)
|
|
return {"status": "ok", "create_id": result_id}
|
|
|
|
|
|
@router.get("/test/get/list/")
|
|
async def get_trainings_list():
|
|
training_executor = TrainingOps(sqllite_executor)
|
|
results = await training_executor.list()
|
|
return {"status": "ok", "create_id": results}
|
|
|
|
|
|
@router.delete("/test/delete/")
|
|
async def delete_by_ids():
|
|
training_executor = TrainingOps(sqllite_executor)
|
|
await training_executor.delete(list_of_ids=[4,5,6])
|
|
return {"status": "ok"}
|
|
|
|
|
|
@router.post("/test/create/")
|
|
async def create_full_training():
|
|
training_executor = TrainingOps(sqllite_executor)
|
|
exercise_executor = ExerciseOps(sqllite_executor)
|
|
approach_executor = ApproachOps(sqllite_executor)
|
|
sample_training_data: TrainingDTO = parse_training_data()[-1]
|
|
logging.info(sample_training_data)
|
|
training_id: int = await training_executor.create(sample_training_data)
|
|
if sample_training_data.exercises:
|
|
for exercise in sample_training_data.exercises:
|
|
exercise.training_id = training_id
|
|
exercise_id: int = await exercise_executor.create(exercise)
|
|
if exercise.approaches:
|
|
for approach in exercise.approaches:
|
|
approach.exercise_id = exercise_id
|
|
await approach_executor.create(approach)
|
|
|
|
return {"status": "ok"}
|