From d4666260a79ce2893ea22394105f39c0166077c7 Mon Sep 17 00:00:00 2001 From: Zhi Date: Sun, 22 Feb 2026 04:21:01 +0000 Subject: [PATCH] feat: issue search API (keyword in title/description) --- app/main.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/main.py b/app/main.py index ec2adb4..305e7af 100644 --- a/app/main.py +++ b/app/main.py @@ -439,3 +439,23 @@ def transition_issue(issue_id: int, new_status: str, bg: BackgroundTasks, db: Se }, issue.project_id, db) return issue + + + +# ============ Search API ============ + +@app.get("/search/issues", response_model=List[schemas.IssueResponse]) +def search_issues( + q: str, + project_id: int = None, + skip: int = 0, + limit: int = 50, + db: Session = Depends(get_db) +): + """Search issues by title or description keyword.""" + query = db.query(models.Issue).filter( + (models.Issue.title.contains(q)) | (models.Issue.description.contains(q)) + ) + if project_id: + query = query.filter(models.Issue.project_id == project_id) + return query.offset(skip).limit(limit).all()