Create Router Routines
Create Router Routines
7 Sheet
Membuat router routines.py
buat file pada directory workout/fastapi/api/routers/routines.py
tambahkan kode berikut pada routines.py
from pydantic import BaseModelfrom typing import List, Optionalfrom fastapi import APIRouterfrom sqlalchemy.orm import joinedloadfrom api.models import Workout, Routinefrom api.deps import db_depedency, user_depedency router = APIRouter( prefix='/routines', tags=['routines']) class RoutineBase(BaseModel): name: str description: Optional[str] = None class RoutineCreate(RoutineBase): workouts: List[int] = [] @router.get('/')def get_routines(db: db_depedency, user: user_depedency): return db.query(Routine).options(joinedload(Routine.workouts)).filter(Routine.user_id == user.get('id')).all() @router.post('/')def create_routine(db: db_depedency, user: user_depedency, routine: RoutineCreate): db_routine = Routine(name=routine.name, description=routine.description, user_id=user.get('id')) for workout_id in routine.workouts: workout = db.query(Workout).filter(Workout.id == workout_id).first() if workout: db_routine.workouts.append(workout) db.add(db_routine) db.commit() db.refresh(db_routine) db_routines = db.query(Routine).options(joinedload(Routine.workouts)).filter(Routine.id == db_routine.id).first() return db_routines @router.delete('/')def delete_routine(db: db_depedency, user: user_depedency, routine_id: int): db_routine = db.query(Routine).filter(Routine.id == routine_id).first() if db_routine: db.delete(db_routine) db.commit() return db_routineTambahkan ke main.py
kemudian tambahkan routines pada main.py
from fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddleware+ from .routers import auth, workouts, routines from .database import Base, engine app = FastAPI() Base.metadata.create_all(bind=engine) app.add_middleware( CORSMiddleware, allow_origins=['http://localhost:3000'], allow_credentials=True, allow_methods=['*'], allow_headers=['*'],) @app.get("/")def health_check(): return "Health check complete" app.include_router(auth.router)app.include_router(workouts.router)+ app.include_router(routines.router)Komentar
Ada 0 komentar pada episode ini.