Create Router Workouts

Membuat router workout.py

buat file pada directory workout/fastapi/api/routers/workout.py

tambahkan kode berikut pada workout.py

from pydantic import BaseModel
from typing import Optional
from fastapi import APIRouter, status
 
from api.models import Workout
from api.deps import db_depedency, user_depedency
 
router = APIRouter(
prefix='/workouts',
tags=['workouts']
)
 
class WorkoutBase(BaseModel):
name: str
description: Optional[str] = None
 
class WorkoutCreate(WorkoutBase):
pass
 
@router.get('/')
def get_workout(db: db_depedency, user: user_depedency, workout_id: int):
return db.query(Workout).filter(Workout.id == workout_id).first()
 
@router.get('/workouts')
def get_workouts(db: db_depedency, user: user_depedency):
return db.query(Workout).all()
 
 
@router.post('/', status_code=status.HTTP_201_CREATED)
def create_workout(db: db_depedency, user: user_depedency, workout: WorkoutCreate):
db_workout = Workout(**workout.model_dump(), user_id=user.get('id'))
db.add(db_workout)
db.commit()
db.refresh(db_workout)
return db_workout
 
@router.delete("/")
def delete_workout(db: db_depedency, user: user_depedency, workout_id: int):
db_workout = db.query(Workout).filter(Workout.id == workout_id).first()
if db_workout:
db.delete(db_workout)
db.commit()
return db_workout

kemudian tambahkan workout pada main.py

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
+ from .routers import auth, workouts
 
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)

Komentar

Ada 0 komentar pada episode ini.