Add lesson content editor, quiz test endpoint, and lesson update API
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 36s
CI / test-python-backend-compliance (push) Successful in 31s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 21s

- Backend: UpdateLesson handler (PUT /lessons/:id) for editing title, content, quiz questions
- Backend: TestQuiz handler (POST /lessons/:id/quiz-test) for quiz evaluation without enrollment
- Frontend: Content editor with markdown textarea, save, and approve-for-video workflow
- Frontend: Fix quiz endpoint to /lessons/:id/quiz-test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-02-26 17:57:15 +01:00
parent 1698912a27
commit 8acf1d2e12
5 changed files with 311 additions and 12 deletions

View File

@@ -331,6 +331,23 @@ func (s *Store) GetLesson(ctx context.Context, id uuid.UUID) (*Lesson, error) {
return &lesson, nil
}
// UpdateLesson updates a lesson's content, title, and quiz questions
func (s *Store) UpdateLesson(ctx context.Context, lesson *Lesson) error {
quizQuestions, _ := json.Marshal(lesson.QuizQuestions)
_, err := s.pool.Exec(ctx, `
UPDATE academy_lessons SET
title = $2, description = $3, content_url = $4,
duration_minutes = $5, quiz_questions = $6
WHERE id = $1
`,
lesson.ID, lesson.Title, lesson.Description,
lesson.ContentURL, lesson.DurationMinutes, quizQuestions,
)
return err
}
// ============================================================================
// Enrollment Operations
// ============================================================================