add new method for sort results

This commit is contained in:
Pavel 2024-04-16 17:25:44 +03:00
parent 9517c32cdc
commit 77c4797a21
2 changed files with 32 additions and 9 deletions

@ -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
}

@ -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 +