front-back integrated
This commit is contained in:
Binary file not shown.
@@ -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)
|
||||
|
||||
@@ -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