MCPcopy Create free account
hub / github.com/0010aor/FlashNotes / update_practice_card_result

Function update_practice_card_result

backend/src/flashcards/api.py:326–367  ·  view source on GitHub ↗

Update the result (is_correct) for a practiced card.

(
    session: SessionDep,
    current_user: CurrentUser,
    practice_session_id: uuid.UUID,
    card_id: uuid.UUID,
    result_in: PracticeCardResultPatch,
)

Source from the content-addressed store, hash-verified

324 response_model=PracticeCardResponse,
325)
326def update_practice_card_result(
327 session: SessionDep,
328 current_user: CurrentUser,
329 practice_session_id: uuid.UUID,
330 card_id: uuid.UUID,
331 result_in: PracticeCardResultPatch,
332) -> Any:
333 """Update the result (is_correct) for a practiced card."""
334 practice_session = services.get_practice_session(
335 session=session,
336 session_id=practice_session_id,
337 user_id=current_user.id,
338 )
339 if not practice_session:
340 raise HTTPException(status_code=404, detail="Practice session not found")
341
342 if practice_session.is_completed:
343 raise HTTPException(status_code=400, detail="Practice session is completed")
344
345 practice_card = services.get_practice_card(
346 session=session,
347 practice_session_id=practice_session_id,
348 card_id=card_id,
349 )
350 if not practice_card:
351 raise HTTPException(status_code=404, detail="Practice card not found")
352
353 practice_card = services.record_practice_card_result(
354 session=session,
355 practice_card=practice_card,
356 is_correct=result_in.is_correct,
357 )
358
359 card = services.get_card_by_id(session=session, card_id=practice_card.card_id)
360 if not card:
361 raise HTTPException(status_code=500, detail="Associated card not found")
362
363 return PracticeCardResponse(
364 card=card,
365 is_practiced=practice_card.is_practiced,
366 is_correct=practice_card.is_correct,
367 )

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected