front-back integrated
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user