diff --git a/repository/question/question.go b/repository/question/question.go index 5fa0485..a029723 100644 --- a/repository/question/question.go +++ b/repository/question/question.go @@ -415,3 +415,32 @@ func (r *QuestionRepository) GetQuestionTitleByID(ctx context.Context, questionI return resp, nil } + +func (r *QuestionRepository) ForSortingResults(ctx context.Context, allAnswers []model.Answer) ([]model.Answer, error) { + var questions []QueTitleResp + + for _, answer := range allAnswers { + questionData, err := r.GetQuestionTitleByID(ctx, answer.QuestionId) + if err != nil { + return nil, err + } + questionData.AnswerID = answer.Id + questions = append(questions, questionData) + + } + sort.Slice(questions, func(i, j int) bool { + return questions[i].Page < questions[j].Page + }) + + // TODO O2 REFACTOR + var sortedAllAnswers []model.Answer + for _, que := range questions { + for _, answer := range allAnswers { + if que.AnswerID == answer.Id { + sortedAllAnswers = append(sortedAllAnswers, answer) + } + } + } + + return sortedAllAnswers, nil +} diff --git a/repository/result/result.go b/repository/result/result.go index f38d39a..52c1010 100644 --- a/repository/result/result.go +++ b/repository/result/result.go @@ -220,14 +220,13 @@ func (r *ResultRepository) GetQuestions(ctx context.Context, quizID uint64) ([]m } // test + -func (r *ResultRepository) GetResultAnswers(ctx context.Context, answerID uint64) ([]model.Answer, []model.ResultAnswer, error) { +func (r *ResultRepository) GetResultAnswers(ctx context.Context, answerID uint64) ([]model.Answer, error) { rows, err := r.queries.GetResultAnswers(ctx, int64(answerID)) if err != nil { - return nil, nil, err + return nil, err } var answers []model.Answer - var toSortAnswer []model.ResultAnswer for _, row := range rows { answer := model.Answer{ @@ -248,15 +247,10 @@ func (r *ResultRepository) GetResultAnswers(ctx context.Context, answerID uint64 Browser: row.Browser, } - toSortAnswer = append(toSortAnswer, model.ResultAnswer{ - QuestionID: uint64(row.QuestionID), - AnswerID: uint64(row.ID), - }) - answers = append(answers, answer) } - return answers, toSortAnswer, nil + return answers, nil } // test +