candidates can now be edited before approval

This commit is contained in:
2026-04-25 23:32:18 +02:00
parent 5503b9761e
commit d5869bcaeb
6 changed files with 357 additions and 5 deletions

View File

@@ -77,6 +77,13 @@ class CandidateRejection(BaseModel):
notes: str = ""
class CandidateEdit(BaseModel):
name: str
description: str = ""
confidence: float = Field(default=0.5, ge=0.0, le=1.0)
notes: str = ""
app = FastAPI(title="Repository Ability Registry", version="0.1.0")
@@ -217,6 +224,54 @@ def reject_candidate_ability(
raise HTTPException(status_code=404, detail=str(exc)) from exc
@app.patch(
"/repos/{repository_id}/analysis-runs/{analysis_run_id}"
"/candidate-abilities/{candidate_ability_id}"
)
def edit_candidate_ability(
repository_id: int,
analysis_run_id: int,
candidate_ability_id: int,
payload: CandidateEdit,
service: RegistryService = Depends(get_service),
) -> dict[str, object]:
try:
return asdict(
service.edit_candidate_ability(
repository_id,
analysis_run_id,
candidate_ability_id,
**payload.model_dump(),
)
)
except NotFoundError as exc:
raise HTTPException(status_code=404, detail=str(exc)) from exc
@app.patch(
"/repos/{repository_id}/analysis-runs/{analysis_run_id}"
"/candidate-capabilities/{candidate_capability_id}"
)
def edit_candidate_capability(
repository_id: int,
analysis_run_id: int,
candidate_capability_id: int,
payload: CandidateEdit,
service: RegistryService = Depends(get_service),
) -> dict[str, object]:
try:
return asdict(
service.edit_candidate_capability(
repository_id,
analysis_run_id,
candidate_capability_id,
**payload.model_dump(),
)
)
except NotFoundError as exc:
raise HTTPException(status_code=404, detail=str(exc)) from exc
@app.post("/repos/{repository_id}/abilities", status_code=201)
def create_ability(
repository_id: int,