feat: add project update/delete, user update endpoints

This commit is contained in:
Zhi
2026-02-21 12:13:00 +00:00
parent f823a2475d
commit e01dec5240

View File

@@ -302,3 +302,44 @@ def version():
"version": "0.1.0", "version": "0.1.0",
"description": "Agent/人类协同任务管理平台" "description": "Agent/人类协同任务管理平台"
} }
# ============ Projects (update/delete) ============
@app.patch("/projects/{project_id}", response_model=schemas.ProjectResponse)
def update_project(project_id: int, project_update: schemas.ProjectUpdate, db: Session = Depends(get_db)):
project = db.query(models.Project).filter(models.Project.id == project_id).first()
if not project:
raise HTTPException(status_code=404, detail="Project not found")
update_data = project_update.model_dump(exclude_unset=True)
for field, value in update_data.items():
setattr(project, field, value)
db.commit()
db.refresh(project)
return project
@app.delete("/projects/{project_id}", status_code=status.HTTP_204_NO_CONTENT)
def delete_project(project_id: int, db: Session = Depends(get_db)):
project = db.query(models.Project).filter(models.Project.id == project_id).first()
if not project:
raise HTTPException(status_code=404, detail="Project not found")
db.delete(project)
db.commit()
return None
# ============ Users (update/delete) ============
@app.patch("/users/{user_id}", response_model=schemas.UserResponse)
def update_user(user_id: int, db: Session = Depends(get_db), full_name: str = None, email: str = None):
user = db.query(models.User).filter(models.User.id == user_id).first()
if not user:
raise HTTPException(status_code=404, detail="User not found")
if full_name is not None:
user.full_name = full_name
if email is not None:
user.email = email
db.commit()
db.refresh(user)
return user