sqm-dashboards/app/services/survey_response_aggregator.rb
2021-10-01 13:32:10 -04:00

16 lines
678 B
Ruby

# TODO inline me pls
class SurveyResponseAggregator
# Returns an average score for all SurveyItemResponses for the given AcademicYear, School, and Measure
def self.score(academic_year:, school:, measure:)
SurveyItemResponse.for_measure(measure)
.where(academic_year: academic_year, school: school)
.average(:likert_score)
end
# Returns an array of SurveyItemResponses for the given AcademicYear, School, and Measure
def self.find_responses_by_measure(academic_year:, school:, measure:)
SurveyItemResponse
.where(academic_year: academic_year, school: school)
.joins(:survey_item).where('survey_items.measure_id': measure.id)
end
end