add new method for sort results
This commit is contained in:
parent
9517c32cdc
commit
77c4797a21
@ -415,3 +415,32 @@ func (r *QuestionRepository) GetQuestionTitleByID(ctx context.Context, questionI
|
|||||||
|
|
||||||
return resp, nil
|
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 +
|
// 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))
|
rows, err := r.queries.GetResultAnswers(ctx, int64(answerID))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var answers []model.Answer
|
var answers []model.Answer
|
||||||
var toSortAnswer []model.ResultAnswer
|
|
||||||
|
|
||||||
for _, row := range rows {
|
for _, row := range rows {
|
||||||
answer := model.Answer{
|
answer := model.Answer{
|
||||||
@ -248,15 +247,10 @@ func (r *ResultRepository) GetResultAnswers(ctx context.Context, answerID uint64
|
|||||||
Browser: row.Browser,
|
Browser: row.Browser,
|
||||||
}
|
}
|
||||||
|
|
||||||
toSortAnswer = append(toSortAnswer, model.ResultAnswer{
|
|
||||||
QuestionID: uint64(row.QuestionID),
|
|
||||||
AnswerID: uint64(row.ID),
|
|
||||||
})
|
|
||||||
|
|
||||||
answers = append(answers, answer)
|
answers = append(answers, answer)
|
||||||
}
|
}
|
||||||
|
|
||||||
return answers, toSortAnswer, nil
|
return answers, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// test +
|
// test +
|
||||||
|
Loading…
Reference in New Issue
Block a user