From 0b0505a2386c48d34e067e2012e21f049558cdea Mon Sep 17 00:00:00 2001
From: bayusamudra5502 <bayusamudra.55.02.com@gmail.com>
Date: Fri, 5 May 2023 00:35:29 +0700
Subject: [PATCH] fix: add safetinees

---
 repository/quiz/impl.go | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/repository/quiz/impl.go b/repository/quiz/impl.go
index e4f8c12..fdefa46 100644
--- a/repository/quiz/impl.go
+++ b/repository/quiz/impl.go
@@ -41,12 +41,18 @@ func (q *QuizRepositoryImpl) GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error)
 }
 
 func (q *QuizRepositoryImpl) UpdateScore(email string, quizId uuid.UUID, score int) error {
-	return q.db.
-		Model(&quiz.QuizTake{}).
-		Where("quiz_id = ? AND email = ?", quizId, email).
-		Updates(quiz.QuizTake{
+	tx := q.db.Begin()
+	defer tx.Commit()
+
+	tx.Where("quiz_id = ? AND email = ?", quizId, email).Delete(&quiz.QuizTake{})
+
+	return tx.
+		Create(quiz.QuizTake{
 			Score:      score,
 			IsFinished: true,
+			QuizId:     quizId,
+			Email:      email,
+			Id:         uuid.New(),
 		}).Error
 }
 
-- 
GitLab