diff --git a/repository/quiz/quiz.go b/repository/quiz/quiz.go index 6aa26a9..9512eeb 100644 --- a/repository/quiz/quiz.go +++ b/repository/quiz/quiz.go @@ -579,6 +579,30 @@ func (r *QuizRepository) GetQuizConfig(ctx context.Context, quizID uint64) (mode return config, row.Accountid, nil } -func (r *QuizRepository) QuizMove(ctx context.Context, qID, accountID string) { +func (r *QuizRepository) QuizMove(ctx context.Context, qID, accountID string) (string, error) { + qUUID, err := uuid.Parse(qID) + if err != nil { + return "", err + } + qNullUUID := uuid.NullUUID{UUID: qUUID, Valid: true} + data, err := r.queries.QuizCopyQid(ctx, sqlcgen.QuizCopyQidParams{ + Qid: qNullUUID, + Accountid: accountID, + }) + + if err != nil { + return "", err + } + + err = r.queries.CopyQuestionQuizID(ctx, sqlcgen.CopyQuestionQuizIDParams{ + QuizID: data.OriginalQuizID, + QuizID_2: data.NewQuizID, + }) + + if err != nil { + return "", err + } + + return data.OriginalQid.UUID.String(), err }