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}