mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
Refactor survey response loader to use functional style
This commit is contained in:
parent
587cbbdd3d
commit
16734f9ce7
1 changed files with 7 additions and 9 deletions
|
|
@ -1,10 +1,8 @@
|
|||
require 'csv'
|
||||
|
||||
class SurveyResponsesDataLoader
|
||||
@@survey_item_responses = []
|
||||
|
||||
def self.load_data(filepath:)
|
||||
@@survey_item_responses = []
|
||||
csv_file = File.read(filepath)
|
||||
|
||||
parsed_csv_file = CSV.parse(csv_file, headers: true)
|
||||
|
|
@ -13,11 +11,11 @@ class SurveyResponsesDataLoader
|
|||
.filter { |header| header.start_with? 't-' or header.start_with? 's-' }
|
||||
.map { |survey_item_id| SurveyItem.find_by_survey_item_id survey_item_id }
|
||||
|
||||
parsed_csv_file.each do |row|
|
||||
survey_item_responses = parsed_csv_file.map do |row|
|
||||
process_row row: row, survey_items: survey_items
|
||||
end
|
||||
|
||||
SurveyItemResponse.import @@survey_item_responses
|
||||
SurveyItemResponse.import survey_item_responses.compact.flatten
|
||||
end
|
||||
|
||||
private
|
||||
|
|
@ -35,20 +33,20 @@ class SurveyResponsesDataLoader
|
|||
school = School.find_by_district_code_and_school_code(district_code, school_code)
|
||||
return if school.nil?
|
||||
|
||||
survey_items.each do |survey_item|
|
||||
return unless SurveyItemResponse.find_by(response_id: response_id, survey_item: survey_item).nil?
|
||||
survey_items.map do |survey_item|
|
||||
next unless SurveyItemResponse.find_by(response_id: response_id, survey_item: survey_item).nil?
|
||||
|
||||
likert_score = row[survey_item.survey_item_id]
|
||||
next if likert_score.nil?
|
||||
@@survey_item_responses << SurveyItemResponse.new(
|
||||
|
||||
SurveyItemResponse.new(
|
||||
response_id: response_id,
|
||||
academic_year: academic_year,
|
||||
school: school,
|
||||
survey_item: survey_item,
|
||||
likert_score: likert_score
|
||||
)
|
||||
end
|
||||
|
||||
end.compact
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue