init commit

This commit is contained in:
2026-03-18 06:40:53 -05:00
commit dd227be9b0
53 changed files with 18575 additions and 0 deletions

View 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()