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
+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()