BathHacked/energy-sparks

View on GitHub
lib/tasks/targets/generate_feature_data.rake

Summary

Maintainability
Test Coverage
namespace :targets do
  desc 'Generate target fuel types and progress report'
  task generate_feature_data: [:environment] do
    puts "#{Time.zone.now} targets:generate_feature_data start"
    School.process_data.each do |school|
      begin
        puts "Running for #{school.name}"
        aggregate_school = AggregateSchoolService.new(school).aggregate_school
        #store whether enough data
        fuel_types = Targets::GenerateFuelTypes.new(school, aggregate_school).perform
        configuration = Schools::Configuration.where(school: school).first_or_create
        configuration.update!(school_target_fuel_types: fuel_types)
        school.reload
        Targets::GenerateProgressService.new(school, aggregate_school).generate!
      rescue => e
        puts "Generation of feature data for #{school.name} because #{e.message}"
        puts e.backtrace
      end
    end
    puts "#{Time.zone.now} targets:generate_feature_data end"
  end
end