subul / backend /services /candidate_assessment_service.py
Kaadan's picture
initial commit
358dfff
from sqlalchemy.orm import Session
from typing import List, Optional
from models.candidate_assessment import CandidateAssessment
from schemas.candidate_assessment import CandidateAssessmentCreate, CandidateAssessmentUpdate
from services.base_service import get_item_by_id, get_items, create_item, update_item
def get_candidate_assessment(db: Session, candidate_assessment_id: int) -> Optional[CandidateAssessment]:
"""Get candidate assessment by ID"""
return get_item_by_id(db, CandidateAssessment, candidate_assessment_id)
def get_candidate_assessments(db: Session, skip: int = 0, limit: int = 100) -> List[CandidateAssessment]:
"""Get list of candidate assessments"""
return get_items(db, CandidateAssessment, skip, limit)
def get_candidate_assessments_by_candidate(db: Session, candidate_id: int, skip: int = 0, limit: int = 100) -> List[CandidateAssessment]:
"""Get list of candidate assessments by candidate ID"""
return db.query(CandidateAssessment).filter(CandidateAssessment.candidate_id == candidate_id).offset(skip).limit(limit).all()
def get_candidate_assessments_by_assessment(db: Session, assessment_id: int, skip: int = 0, limit: int = 100) -> List[CandidateAssessment]:
"""Get list of candidate assessments by assessment ID"""
return db.query(CandidateAssessment).filter(CandidateAssessment.assessment_id == assessment_id).offset(skip).limit(limit).all()
def create_candidate_assessment(db: Session, candidate_assessment: CandidateAssessmentCreate) -> CandidateAssessment:
"""Create a new candidate assessment"""
db_candidate_assessment = CandidateAssessment(**candidate_assessment.dict())
return create_item(db, db_candidate_assessment)
def update_candidate_assessment(db: Session, candidate_assessment_id: int, candidate_assessment_update: CandidateAssessmentUpdate) -> Optional[CandidateAssessment]:
"""Update a candidate assessment"""
db_candidate_assessment = get_candidate_assessment(db, candidate_assessment_id)
if db_candidate_assessment:
return update_item(db, db_candidate_assessment, **candidate_assessment_update.dict(exclude_unset=True))
return None