Spaces:
Sleeping
Sleeping
TOMOCHIN4 Claude Opus 4.5 commited on
Commit ·
fd41c82
1
Parent(s): 74862ba
fix: Answer schema を拡張して GAS API 連携を修正
Browse files- app.py Answer スキーマに user_answer, correct_answer, subject, category を追加
- apiClient.js submitAnswers で selected_answer フィールドを追加(FastAPI必須)
- フロントエンドとバックエンドのデータ形式を統一
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- app.py +4 -0
- static/js/apiClient.js +4 -3
app.py
CHANGED
|
@@ -59,6 +59,10 @@ class GenerateQuestionsRequest(BaseModel):
|
|
| 59 |
class Answer(BaseModel):
|
| 60 |
question_id: str
|
| 61 |
selected_answer: int
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
time_taken_seconds: Optional[int] = 0
|
| 63 |
|
| 64 |
class SubmitAnswersRequest(BaseModel):
|
|
|
|
| 59 |
class Answer(BaseModel):
|
| 60 |
question_id: str
|
| 61 |
selected_answer: int
|
| 62 |
+
user_answer: Optional[str] = None # GAS APIに渡す用
|
| 63 |
+
correct_answer: Optional[int] = None # GAS APIに渡す用
|
| 64 |
+
subject: Optional[str] = None
|
| 65 |
+
category: Optional[str] = None
|
| 66 |
time_taken_seconds: Optional[int] = 0
|
| 67 |
|
| 68 |
class SubmitAnswersRequest(BaseModel):
|
static/js/apiClient.js
CHANGED
|
@@ -169,14 +169,15 @@ const ApiClient = {
|
|
| 169 |
return MockData.submitAnswers(sessionId, answers);
|
| 170 |
}
|
| 171 |
|
| 172 |
-
// API仕様に合わせて変換(GAS APIが期待する形式)
|
| 173 |
const formattedAnswers = answers.map(ans => ({
|
| 174 |
question_id: ans.question_id,
|
| 175 |
-
|
|
|
|
| 176 |
correct_answer: ans.correct_answer || ans.correct, // 正解を追加
|
| 177 |
subject: ans.subject || '',
|
| 178 |
category: ans.category || '',
|
| 179 |
-
|
| 180 |
}));
|
| 181 |
|
| 182 |
return await this._callApi(
|
|
|
|
| 169 |
return MockData.submitAnswers(sessionId, answers);
|
| 170 |
}
|
| 171 |
|
| 172 |
+
// API仕様に合わせて変換(FastAPI + GAS APIが期待する形式)
|
| 173 |
const formattedAnswers = answers.map(ans => ({
|
| 174 |
question_id: ans.question_id,
|
| 175 |
+
selected_answer: ans.selected_choice, // FastAPIスキーマが要求(int型)
|
| 176 |
+
user_answer: ans.selected_choice, // GAS APIが期待(文字列型)
|
| 177 |
correct_answer: ans.correct_answer || ans.correct, // 正解を追加
|
| 178 |
subject: ans.subject || '',
|
| 179 |
category: ans.category || '',
|
| 180 |
+
time_taken_seconds: ans.time_taken_seconds || 0 // FastAPI: time_taken_seconds
|
| 181 |
}));
|
| 182 |
|
| 183 |
return await this._callApi(
|