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,
)
| 324 | response_model=PracticeCardResponse, |
| 325 | ) |
| 326 | def 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 | ) |
nothing calls this directly
no test coverage detected