Files
Portfolio/apps/backend/app/routers/projects.py
T

32 lines
885 B
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session, joinedload
from app.database import get_db
from app.models.project import Project
from app.schemas.project import ProjectCard, ProjectPage
router = APIRouter(prefix="/projects", tags=["Projects"])
@router.get("/", response_model=list[ProjectCard])
def get_projects(db: Session = Depends(get_db)):
return (
db.query(Project)
.options(joinedload(Project.skills))
.all()
)
@router.get("/{project_id}", response_model=ProjectPage)
def get_project(project_id: int, db: Session = Depends(get_db)):
project = (
db.query(Project)
.options(joinedload(Project.skills))
.filter(Project.id == project_id)
.first()
)
if not project:
raise HTTPException(status_code=404, detail="Project not found")
return project