init commit
This commit is contained in:
40
backend/app/routers/projects.py
Normal file
40
backend/app/routers/projects.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from ..auth import verify_token
|
||||
from ..database import get_db
|
||||
from ..models import Project
|
||||
from ..schemas import ProjectCreate, ProjectResponse
|
||||
|
||||
router = APIRouter(prefix="/api/projects", tags=["projects"], dependencies=[Depends(verify_token)])
|
||||
|
||||
|
||||
@router.get("", response_model=list[ProjectResponse])
|
||||
def list_projects(db: Session = Depends(get_db)):
|
||||
return db.query(Project).all()
|
||||
|
||||
|
||||
@router.post("", response_model=ProjectResponse, status_code=201)
|
||||
def create_project(data: ProjectCreate, db: Session = Depends(get_db)):
|
||||
project = Project(**data.model_dump())
|
||||
db.add(project)
|
||||
db.commit()
|
||||
db.refresh(project)
|
||||
return project
|
||||
|
||||
|
||||
@router.get("/{project_id}", response_model=ProjectResponse)
|
||||
def get_project(project_id: int, db: Session = Depends(get_db)):
|
||||
project = db.get(Project, project_id)
|
||||
if not project:
|
||||
raise HTTPException(404, f"Project {project_id} not found")
|
||||
return project
|
||||
|
||||
|
||||
@router.delete("/{project_id}", status_code=204)
|
||||
def delete_project(project_id: int, db: Session = Depends(get_db)):
|
||||
project = db.get(Project, project_id)
|
||||
if not project:
|
||||
raise HTTPException(404, f"Project {project_id} not found")
|
||||
db.delete(project)
|
||||
db.commit()
|
||||
Reference in New Issue
Block a user