From 8430b82687f06408065a45cf3f5f642cfdfc2261 Mon Sep 17 00:00:00 2001 From: Yared Yemane Date: Wed, 29 Apr 2026 03:02:13 -0700 Subject: [PATCH] Fix partial question-set updates preserving existing values. When PUT payload omits title, status, or shuffle_questions, reuse current persisted values so updates do not write invalid empty status values. Made-with: Cursor --- internal/web_server/handlers/questions.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/web_server/handlers/questions.go b/internal/web_server/handlers/questions.go index 8059015..629154b 100644 --- a/internal/web_server/handlers/questions.go +++ b/internal/web_server/handlers/questions.go @@ -923,7 +923,7 @@ func (h *Handler) UpdateQuestionSet(c *fiber.Ctx) error { }) } - title := "" + title := existingSet.Title if req.Title != nil { title = *req.Title } @@ -952,6 +952,15 @@ func (h *Handler) UpdateQuestionSet(c *fiber.Ctx) error { } } + status := req.Status + if status == nil { + status = &existingSet.Status + } + shuffleQuestions := req.ShuffleQuestions + if shuffleQuestions == nil { + shuffleQuestions = &existingSet.ShuffleQuestions + } + input := domain.CreateQuestionSetInput{ Title: title, Description: req.Description, @@ -959,8 +968,8 @@ func (h *Handler) UpdateQuestionSet(c *fiber.Ctx) error { Persona: req.Persona, TimeLimitMinutes: req.TimeLimitMinutes, PassingScore: req.PassingScore, - ShuffleQuestions: req.ShuffleQuestions, - Status: req.Status, + ShuffleQuestions: shuffleQuestions, + Status: status, IntroVideoURL: req.IntroVideoURL, }