sentimind / api /quiz.py
anggars
setup sentimind
c7e5db4
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Dict
# Import Logic dari Core
from .core.quiz_logic import QuizHandler
app = FastAPI()
# Model untuk menerima jawaban dari frontend
class QuizSubmission(BaseModel):
answers: Dict[str, int] # Contoh: {"1": 3, "2": -2}
@app.get("/api/quiz")
def get_quiz_questions():
"""Endpoint untuk Frontend mengambil soal"""
questions = QuizHandler.get_questions()
if not questions:
# Jika file json tidak terbaca/kosong
raise HTTPException(status_code=500, detail="Database soal tidak ditemukan")
return {"questions": questions}
@app.post("/api/quiz")
def submit_quiz(submission: QuizSubmission):
"""Endpoint untuk Frontend kirim jawaban dan dapat hasil MBTI"""
result = QuizHandler.calculate_mbti(submission.answers)
return {"mbti": result}