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>

Files changed (2) hide show
  1. app.py +4 -0
  2. 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
- user_answer: ans.selected_choice, // selected_answer → user_answer
 
176
  correct_answer: ans.correct_answer || ans.correct, // 正解を追加
177
  subject: ans.subject || '',
178
  category: ans.category || '',
179
- time_spent: ans.time_taken_seconds || 0 // time_taken_seconds → time_spent
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(