subul / backend /services /question_service.py
Kaadan's picture
initial commit
358dfff
from sqlalchemy.orm import Session
from typing import List, Optional
from models.question import Question
from schemas.question import QuestionCreate, QuestionUpdate
from services.base_service import get_item_by_id, get_items, create_item, update_item
def get_question(db: Session, question_id: int) -> Optional[Question]:
"""Get question by ID"""
return get_item_by_id(db, Question, question_id)
def get_questions(db: Session, skip: int = 0, limit: int = 100) -> List[Question]:
"""Get list of questions"""
return get_items(db, Question, skip, limit)
def get_questions_by_assessment(db: Session, assessment_id: int, skip: int = 0, limit: int = 100) -> List[Question]:
"""Get list of questions by assessment ID"""
return db.query(Question).filter(Question.assessment_id == assessment_id).offset(skip).limit(limit).all()
def create_question(db: Session, question: QuestionCreate) -> Question:
"""Create a new question"""
db_question = Question(**question.dict())
return create_item(db, db_question)
def update_question(db: Session, question_id: int, question_update: QuestionUpdate) -> Optional[Question]:
"""Update a question"""
db_question = get_question(db, question_id)
if db_question:
return update_item(db, db_question, **question_update.dict(exclude_unset=True))
return None