You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sqm-dashboards/app/services/survey_response_aggregator.rb

17 lines
678 B

# 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