rolebasedschoolmanagementsy.../app/crud/crud_question_option.py

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)