26 lines
1002 B
Python
26 lines
1002 B
Python
from typing import List, Optional
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.crud.base import CRUDBase
|
|
from app.models.question_option import QuestionOption
|
|
from app.schemas.question_option import QuestionOptionCreate, QuestionOptionUpdate
|
|
|
|
|
|
class CRUDQuestionOption(CRUDBase[QuestionOption, QuestionOptionCreate, QuestionOptionUpdate]):
|
|
def get_by_question_id(self, db: Session, *, question_id: int) -> List[QuestionOption]:
|
|
"""Get all options for a specific question"""
|
|
return db.query(self.model).filter(QuestionOption.question_id == question_id).all()
|
|
|
|
def get_correct_option(self, db: Session, *, question_id: int) -> Optional[QuestionOption]:
|
|
"""Get the correct option for a question"""
|
|
return (
|
|
db.query(self.model)
|
|
.filter(
|
|
QuestionOption.question_id == question_id,
|
|
QuestionOption.is_correct
|
|
)
|
|
.first()
|
|
)
|
|
|
|
|
|
question_option = CRUDQuestionOption(QuestionOption) |