File size: 872 Bytes
c7e5db4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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} |