feat(vwb): log supervised competence verdicts
This commit is contained in:
61
visual_workflow_builder/backend/api/lea_competences.py
Normal file
61
visual_workflow_builder/backend/api/lea_competences.py
Normal file
@@ -0,0 +1,61 @@
|
||||
"""Lea competence supervision endpoints exposed by the VWB backend."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from flask import Blueprint, jsonify, request
|
||||
|
||||
from core.competences.verdicts import (
|
||||
CompetenceVerdictError,
|
||||
iter_competence_verdicts,
|
||||
store_competence_verdict,
|
||||
)
|
||||
|
||||
|
||||
lea_competences_bp = Blueprint(
|
||||
"lea_competences",
|
||||
__name__,
|
||||
url_prefix="/api/v1/lea/competences",
|
||||
)
|
||||
|
||||
|
||||
@lea_competences_bp.route("/<competence_id>/verdict", methods=["POST"])
|
||||
def submit_competence_verdict(competence_id: str):
|
||||
"""Persist one supervised human verdict without touching YAML."""
|
||||
|
||||
payload = request.get_json(silent=True) or {}
|
||||
try:
|
||||
verdict = store_competence_verdict(competence_id, payload)
|
||||
except KeyError:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": f"Competence '{competence_id}' introuvable",
|
||||
}), 404
|
||||
except CompetenceVerdictError as exc:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"error": str(exc),
|
||||
"write_back_enabled": False,
|
||||
"yaml_write": False,
|
||||
}), 400
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"competence_id": competence_id,
|
||||
"verdict": verdict,
|
||||
"duplicate": verdict["duplicate"],
|
||||
"write_back_enabled": False,
|
||||
"yaml_write": False,
|
||||
}), 200 if verdict["duplicate"] else 201
|
||||
|
||||
|
||||
@lea_competences_bp.route("/<competence_id>/verdicts", methods=["GET"])
|
||||
def list_competence_verdicts(competence_id: str):
|
||||
"""Return logged supervised verdicts for one competence."""
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"competence_id": competence_id,
|
||||
"verdicts": iter_competence_verdicts(competence_id=competence_id),
|
||||
"write_back_enabled": False,
|
||||
"yaml_write": False,
|
||||
})
|
||||
Reference in New Issue
Block a user