hoangthiencm commited on
Commit
362b0d5
·
verified ·
1 Parent(s): 5d6d869

Update baigiang.py

Browse files
Files changed (1) hide show
  1. 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 (GIỮ NGUYÊN) ---
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)