fix: return sample_answer_voice_prompt and audio_correct_answer_text in question set items list
Extend GetQuestionSetItems and GetPublishedQuestionsInSet queries to match paginated fields; map audio answer join in repository instead of nils. Made-with: Cursor
This commit is contained in:
parent
33d34f0dd2
commit
bc68326a66
|
|
@ -21,10 +21,13 @@ SELECT
|
||||||
q.explanation,
|
q.explanation,
|
||||||
q.tips,
|
q.tips,
|
||||||
q.voice_prompt,
|
q.voice_prompt,
|
||||||
|
q.sample_answer_voice_prompt,
|
||||||
q.image_url,
|
q.image_url,
|
||||||
q.status as question_status
|
q.status as question_status,
|
||||||
|
qaa.correct_answer_text AS audio_correct_answer_text
|
||||||
FROM question_set_items qsi
|
FROM question_set_items qsi
|
||||||
JOIN questions q ON q.id = qsi.question_id
|
JOIN questions q ON q.id = qsi.question_id
|
||||||
|
LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id
|
||||||
WHERE qsi.set_id = $1
|
WHERE qsi.set_id = $1
|
||||||
AND q.status != 'ARCHIVED'
|
AND q.status != 'ARCHIVED'
|
||||||
ORDER BY qsi.display_order;
|
ORDER BY qsi.display_order;
|
||||||
|
|
@ -70,9 +73,12 @@ SELECT
|
||||||
q.explanation,
|
q.explanation,
|
||||||
q.tips,
|
q.tips,
|
||||||
q.voice_prompt,
|
q.voice_prompt,
|
||||||
q.image_url
|
q.sample_answer_voice_prompt,
|
||||||
|
q.image_url,
|
||||||
|
qaa.correct_answer_text AS audio_correct_answer_text
|
||||||
FROM question_set_items qsi
|
FROM question_set_items qsi
|
||||||
JOIN questions q ON q.id = qsi.question_id
|
JOIN questions q ON q.id = qsi.question_id
|
||||||
|
LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id
|
||||||
WHERE qsi.set_id = $1
|
WHERE qsi.set_id = $1
|
||||||
AND q.status = 'PUBLISHED'
|
AND q.status = 'PUBLISHED'
|
||||||
ORDER BY qsi.display_order;
|
ORDER BY qsi.display_order;
|
||||||
|
|
|
||||||
|
|
@ -69,9 +69,12 @@ SELECT
|
||||||
q.explanation,
|
q.explanation,
|
||||||
q.tips,
|
q.tips,
|
||||||
q.voice_prompt,
|
q.voice_prompt,
|
||||||
q.image_url
|
q.sample_answer_voice_prompt,
|
||||||
|
q.image_url,
|
||||||
|
qaa.correct_answer_text AS audio_correct_answer_text
|
||||||
FROM question_set_items qsi
|
FROM question_set_items qsi
|
||||||
JOIN questions q ON q.id = qsi.question_id
|
JOIN questions q ON q.id = qsi.question_id
|
||||||
|
LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id
|
||||||
WHERE qsi.set_id = $1
|
WHERE qsi.set_id = $1
|
||||||
AND q.status = 'PUBLISHED'
|
AND q.status = 'PUBLISHED'
|
||||||
ORDER BY qsi.display_order
|
ORDER BY qsi.display_order
|
||||||
|
|
@ -89,7 +92,9 @@ type GetPublishedQuestionsInSetRow struct {
|
||||||
Explanation pgtype.Text `json:"explanation"`
|
Explanation pgtype.Text `json:"explanation"`
|
||||||
Tips pgtype.Text `json:"tips"`
|
Tips pgtype.Text `json:"tips"`
|
||||||
VoicePrompt pgtype.Text `json:"voice_prompt"`
|
VoicePrompt pgtype.Text `json:"voice_prompt"`
|
||||||
|
SampleAnswerVoicePrompt pgtype.Text `json:"sample_answer_voice_prompt"`
|
||||||
ImageUrl pgtype.Text `json:"image_url"`
|
ImageUrl pgtype.Text `json:"image_url"`
|
||||||
|
AudioCorrectAnswerText pgtype.Text `json:"audio_correct_answer_text"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) GetPublishedQuestionsInSet(ctx context.Context, setID int64) ([]GetPublishedQuestionsInSetRow, error) {
|
func (q *Queries) GetPublishedQuestionsInSet(ctx context.Context, setID int64) ([]GetPublishedQuestionsInSetRow, error) {
|
||||||
|
|
@ -113,7 +118,9 @@ func (q *Queries) GetPublishedQuestionsInSet(ctx context.Context, setID int64) (
|
||||||
&i.Explanation,
|
&i.Explanation,
|
||||||
&i.Tips,
|
&i.Tips,
|
||||||
&i.VoicePrompt,
|
&i.VoicePrompt,
|
||||||
|
&i.SampleAnswerVoicePrompt,
|
||||||
&i.ImageUrl,
|
&i.ImageUrl,
|
||||||
|
&i.AudioCorrectAnswerText,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -138,10 +145,13 @@ SELECT
|
||||||
q.explanation,
|
q.explanation,
|
||||||
q.tips,
|
q.tips,
|
||||||
q.voice_prompt,
|
q.voice_prompt,
|
||||||
|
q.sample_answer_voice_prompt,
|
||||||
q.image_url,
|
q.image_url,
|
||||||
q.status as question_status
|
q.status as question_status,
|
||||||
|
qaa.correct_answer_text AS audio_correct_answer_text
|
||||||
FROM question_set_items qsi
|
FROM question_set_items qsi
|
||||||
JOIN questions q ON q.id = qsi.question_id
|
JOIN questions q ON q.id = qsi.question_id
|
||||||
|
LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id
|
||||||
WHERE qsi.set_id = $1
|
WHERE qsi.set_id = $1
|
||||||
AND q.status != 'ARCHIVED'
|
AND q.status != 'ARCHIVED'
|
||||||
ORDER BY qsi.display_order
|
ORDER BY qsi.display_order
|
||||||
|
|
@ -159,8 +169,10 @@ type GetQuestionSetItemsRow struct {
|
||||||
Explanation pgtype.Text `json:"explanation"`
|
Explanation pgtype.Text `json:"explanation"`
|
||||||
Tips pgtype.Text `json:"tips"`
|
Tips pgtype.Text `json:"tips"`
|
||||||
VoicePrompt pgtype.Text `json:"voice_prompt"`
|
VoicePrompt pgtype.Text `json:"voice_prompt"`
|
||||||
|
SampleAnswerVoicePrompt pgtype.Text `json:"sample_answer_voice_prompt"`
|
||||||
ImageUrl pgtype.Text `json:"image_url"`
|
ImageUrl pgtype.Text `json:"image_url"`
|
||||||
QuestionStatus string `json:"question_status"`
|
QuestionStatus string `json:"question_status"`
|
||||||
|
AudioCorrectAnswerText pgtype.Text `json:"audio_correct_answer_text"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) GetQuestionSetItems(ctx context.Context, setID int64) ([]GetQuestionSetItemsRow, error) {
|
func (q *Queries) GetQuestionSetItems(ctx context.Context, setID int64) ([]GetQuestionSetItemsRow, error) {
|
||||||
|
|
@ -184,8 +196,10 @@ func (q *Queries) GetQuestionSetItems(ctx context.Context, setID int64) ([]GetQu
|
||||||
&i.Explanation,
|
&i.Explanation,
|
||||||
&i.Tips,
|
&i.Tips,
|
||||||
&i.VoicePrompt,
|
&i.VoicePrompt,
|
||||||
|
&i.SampleAnswerVoicePrompt,
|
||||||
&i.ImageUrl,
|
&i.ImageUrl,
|
||||||
&i.QuestionStatus,
|
&i.QuestionStatus,
|
||||||
|
&i.AudioCorrectAnswerText,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -731,9 +731,9 @@ func (s *Store) GetQuestionSetItems(ctx context.Context, setID int64) ([]domain.
|
||||||
Explanation: fromPgText(r.Explanation),
|
Explanation: fromPgText(r.Explanation),
|
||||||
Tips: fromPgText(r.Tips),
|
Tips: fromPgText(r.Tips),
|
||||||
VoicePrompt: fromPgText(r.VoicePrompt),
|
VoicePrompt: fromPgText(r.VoicePrompt),
|
||||||
SampleAnswerVoicePrompt: nil,
|
SampleAnswerVoicePrompt: fromPgText(r.SampleAnswerVoicePrompt),
|
||||||
ImageURL: fromPgText(r.ImageUrl),
|
ImageURL: fromPgText(r.ImageUrl),
|
||||||
AudioCorrectAnswerText: nil,
|
AudioCorrectAnswerText: fromPgText(r.AudioCorrectAnswerText),
|
||||||
QuestionStatus: r.QuestionStatus,
|
QuestionStatus: r.QuestionStatus,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -806,7 +806,9 @@ func (s *Store) GetPublishedQuestionsInSet(ctx context.Context, setID int64) ([]
|
||||||
Explanation: fromPgText(r.Explanation),
|
Explanation: fromPgText(r.Explanation),
|
||||||
Tips: fromPgText(r.Tips),
|
Tips: fromPgText(r.Tips),
|
||||||
VoicePrompt: fromPgText(r.VoicePrompt),
|
VoicePrompt: fromPgText(r.VoicePrompt),
|
||||||
|
SampleAnswerVoicePrompt: fromPgText(r.SampleAnswerVoicePrompt),
|
||||||
ImageURL: fromPgText(r.ImageUrl),
|
ImageURL: fromPgText(r.ImageUrl),
|
||||||
|
AudioCorrectAnswerText: fromPgText(r.AudioCorrectAnswerText),
|
||||||
QuestionStatus: "PUBLISHED",
|
QuestionStatus: "PUBLISHED",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user