diff --git a/repository/quiz/impl.go b/repository/quiz/impl.go index b1ffe2a19b2949f46676ce4ba585b5c056463aae..e4f8c122dd0ca2b1375a70fd9ef95936ecf011d4 100644 --- a/repository/quiz/impl.go +++ b/repository/quiz/impl.go @@ -40,10 +40,10 @@ func (q *QuizRepositoryImpl) GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error) return result, nil } -func (q *QuizRepositoryImpl) UpdateScore(quizId uuid.UUID, score int) error { +func (q *QuizRepositoryImpl) UpdateScore(email string, quizId uuid.UUID, score int) error { return q.db. Model(&quiz.QuizTake{}). - Where("quiz_id = ?", quizId). + Where("quiz_id = ? AND email = ?", quizId, email). Updates(quiz.QuizTake{ Score: score, IsFinished: true, diff --git a/repository/quiz/type.go b/repository/quiz/type.go index 5091ec02b5d095c09d45b8634856a5bfefa6d38b..362686b7a9cc3295c05f680e074f2920afd94ea3 100644 --- a/repository/quiz/type.go +++ b/repository/quiz/type.go @@ -8,7 +8,7 @@ import ( type QuizRepository interface { GetQuizes(courseId string) ([]quiz.Quiz, error) GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error) - UpdateScore(quizId uuid.UUID, score int) error + UpdateScore(email string, quizId uuid.UUID, score int) error NewTake(quizId uuid.UUID, userEmail string) (uuid.UUID, error) IsUserContributor(id string, email string) (bool, error) NewQuiz(quiz quiz.Quiz) error diff --git a/service/quiz/impl.go b/service/quiz/impl.go index 6b8bf077d0d11215566b94fbed59fd7a26f0a8b1..12e0377b14e9a922e9fd1b346dc02c39c94f352a 100644 --- a/service/quiz/impl.go +++ b/service/quiz/impl.go @@ -180,7 +180,7 @@ func (q QuizServiceImpl) DoFinishQuiz(ctx context.Context, quizId uuid.UUID, ema return nil, err } - err = q.QuizRepository.UpdateScore(quizId, int(score)) + err = q.QuizRepository.UpdateScore(email, quizId, int(score)) if err != nil { return nil, err