Spaces:
Running
Running
Update baigiang.py
Browse files- baigiang.py +21 -1
baigiang.py
CHANGED
|
@@ -344,7 +344,7 @@ def process_omr(image_bytes, all_keys):
|
|
| 344 |
traceback.print_exc()
|
| 345 |
return {"score": 0, "error": str(e)}
|
| 346 |
|
| 347 |
-
# --- DB HELPERS & API
|
| 348 |
def save_result_to_db(data, filename, session_id):
|
| 349 |
if not supabase: return
|
| 350 |
try:
|
|
@@ -386,6 +386,26 @@ async def create_session(name: str = Form(...), answer_key_json: str = Form(...)
|
|
| 386 |
logger.error(f"Create Session DB Error: {e}")
|
| 387 |
return {"session_id": session_id, "name": name}
|
| 388 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 389 |
@router.post("/grade")
|
| 390 |
async def grade_exam(file: UploadFile = File(...), answer_key_json: str = Form(...)):
|
| 391 |
try: all_keys = json.loads(answer_key_json)
|
|
|
|
| 344 |
traceback.print_exc()
|
| 345 |
return {"score": 0, "error": str(e)}
|
| 346 |
|
| 347 |
+
# --- DB HELPERS & API ---
|
| 348 |
def save_result_to_db(data, filename, session_id):
|
| 349 |
if not supabase: return
|
| 350 |
try:
|
|
|
|
| 386 |
logger.error(f"Create Session DB Error: {e}")
|
| 387 |
return {"session_id": session_id, "name": name}
|
| 388 |
|
| 389 |
+
@router.delete("/delete_session/{session_id}")
|
| 390 |
+
async def delete_session(session_id: str):
|
| 391 |
+
if session_id in sessions: del sessions[session_id]
|
| 392 |
+
if supabase:
|
| 393 |
+
try:
|
| 394 |
+
supabase.table("omr_results").delete().eq("session_id", session_id).execute()
|
| 395 |
+
supabase.table("omr_sessions").delete().eq("session_id", session_id).execute()
|
| 396 |
+
return {"status": "deleted"}
|
| 397 |
+
except Exception as e: return {"error": str(e)}
|
| 398 |
+
return {"status": "local_deleted"}
|
| 399 |
+
|
| 400 |
+
@router.put("/update_session/{session_id}")
|
| 401 |
+
async def update_session(session_id: str, name: str = Form(...)):
|
| 402 |
+
if supabase:
|
| 403 |
+
try:
|
| 404 |
+
supabase.table("omr_sessions").update({"session_name": name}).eq("session_id", session_id).execute()
|
| 405 |
+
return {"status": "updated", "name": name}
|
| 406 |
+
except Exception as e: return {"error": str(e)}
|
| 407 |
+
return {"status": "local_updated"}
|
| 408 |
+
|
| 409 |
@router.post("/grade")
|
| 410 |
async def grade_exam(file: UploadFile = File(...), answer_key_json: str = Form(...)):
|
| 411 |
try: all_keys = json.loads(answer_key_json)
|