2024-10-04 10:33:37 +05:00

53 lines
1.6 KiB
Python

from typing import List
from fastapi import APIRouter, HTTPException, Depends
from sqlalchemy.orm import Session
from app.infrastructure.database.dependencies import get_db
from app.core.entities.step import StepEntity
from app.core.usecases.step_service import StepService
router = APIRouter()
@router.get("/steps", response_model=List[StepEntity])
def read_steps(db: Session = Depends(get_db)):
service = StepService(db)
return service.get_all_steps()
@router.get("/steps/{step_id}", response_model=StepEntity)
def read_step(step_id: int, db: Session = Depends(get_db)):
service = StepService(db)
step = service.get_step_by_id(step_id)
if step is None:
raise HTTPException(status_code=404, detail="Step not found")
return step
@router.post("/steps", response_model=StepEntity)
def create_step(step: StepEntity, db: Session = Depends(get_db)):
service = StepService(db)
return service.create_step(step)
@router.put("/steps/{step_id}", response_model=StepEntity)
def update_step(step_id: int, step: StepEntity, db: Session = Depends(get_db)):
service = StepService(db)
updated_step = service.update_step(step_id, step)
if updated_step is None:
raise HTTPException(status_code=404, detail="Step not found")
return updated_step
@router.delete("/steps/{step_id}", response_model=bool)
def delete_step(step_id: int, db: Session = Depends(get_db)):
service = StepService(db)
success = service.delete_step(step_id)
if not success:
raise HTTPException(status_code=404, detail="Step not found")
return success