TIF_E41211115_Genso_quiz_ba.../app/services/quiz_service.py

40 lines
1.3 KiB
Python

from typing import List
from repositories import QuizRepository
from schemas import QuizGetSchema
from exception import DataNotFoundException
from mapper import map_quiz_entity_to_schema
class QuizService:
def __init__(self, quiz_repository=QuizRepository):
self.quiz_repository = quiz_repository
def get_quiz(self, quiz_id) -> QuizGetSchema:
data = self.quiz_repository.get_by_id(quiz_id)
if data is None:
raise DataNotFoundException("Quiz not found")
return map_quiz_entity_to_schema(data)
def get_user_quiz(
self, user_id: str, page: int = 1, page_size: int = 10
) -> List[QuizGetSchema]:
quizzes = self.quiz_repository.get_by_user_id(user_id, page, page_size)
return [QuizGetSchema.model_validate(quiz) for quiz in quizzes]
def create_quiz(self, quiz_data):
return self.quiz_repository.create(quiz_data)
def update_quiz(self, quiz_id, quiz_data):
return self.quiz_repository.update(quiz_id, quiz_data)
def delete_quiz(self, quiz_id):
return self.quiz_repository.delete(quiz_id)
def quiz_recommendation(self):
data = self.quiz_repository
if data is None:
raise DataNotFoundException("Quiz not found")
return map_quiz_entity_to_schema(data)