front-back integrated

This commit is contained in:
2026-09-30 02:25:03 +03:00
parent 93ca76c6e1
commit 1f81632083
13 changed files with 298 additions and 27 deletions
BIN
View File
Binary file not shown.
+2
View File
@@ -4,6 +4,7 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from database import engine, Base
import routers.clients
import routers.workout_types
import routers.workouts
import routers.exercises
import routers.metrics
@@ -29,6 +30,7 @@ app.add_middleware(
# Подключаем роутеры
app.include_router(routers.clients.router)
app.include_router(routers.workout_types.router)
app.include_router(routers.workouts.router)
app.include_router(routers.exercises.router)
app.include_router(routers.metrics.router)
+31
View File
@@ -0,0 +1,31 @@
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List
import database
import models
import schemas
from datetime import datetime
router = APIRouter(prefix="/workout-types", tags=["workout-types"])
def get_current_timestamp():
return datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%fZ')
@router.post("/", response_model=schemas.WorkoutType)
def create_workout_type(wt: schemas.WorkoutTypeCreate, db: Session = Depends(database.get_db)):
db_wt = db.query(models.WorkoutType).filter(models.WorkoutType.sync_id == wt.sync_id).first()
if db_wt:
raise HTTPException(status_code=400, detail="WorkoutType with this sync_id already exists")
db_wt = models.WorkoutType(
**wt.dict(),
created_at=get_current_timestamp()
)
db.add(db_wt)
db.commit()
db.refresh(db_wt)
return db_wt
@router.get("/", response_model=List[schemas.WorkoutType])
def list_workout_types(db: Session = Depends(database.get_db)):
return db.query(models.WorkoutType).order_by(models.WorkoutType.sort_order).all()