Merge dev-2026-03-22 into main #12
@@ -524,6 +524,35 @@ def _serialize_support(db: Session, support: Support) -> dict:
|
||||
}
|
||||
|
||||
|
||||
@router.get("/supports", tags=["Supports"])
|
||||
def list_all_supports(
|
||||
status: str | None = None,
|
||||
taken_by: str | None = None,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: models.User = Depends(get_current_user_or_apikey),
|
||||
):
|
||||
"""List support tickets across all projects. Optional status/taken_by filters."""
|
||||
query = db.query(Support)
|
||||
|
||||
if status:
|
||||
query = query.filter(Support.status == SupportStatus(status))
|
||||
|
||||
if taken_by == "me":
|
||||
query = query.filter(Support.assignee_id == current_user.id)
|
||||
elif taken_by == "null":
|
||||
query = query.filter(Support.assignee_id.is_(None))
|
||||
elif taken_by:
|
||||
assignee = db.query(models.User).filter(models.User.username == taken_by).first()
|
||||
if assignee:
|
||||
query = query.filter(Support.assignee_id == assignee.id)
|
||||
else:
|
||||
return []
|
||||
|
||||
query = query.order_by(Support.created_at.desc())
|
||||
supports = query.all()
|
||||
return [_serialize_support(db, s) for s in supports]
|
||||
|
||||
|
||||
@router.get("/supports/{project_code}/{milestone_id}", tags=["Supports"])
|
||||
def list_supports(project_code: str, milestone_id: int, db: Session = Depends(get_db)):
|
||||
project = db.query(models.Project).filter(models.Project.project_code == project_code).first()
|
||||
|
||||
Reference in New Issue
Block a user