BathHacked/energy-sparks

View on GitHub
app/services/programmes/enroller.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Programmes
  class Enroller
    def initialize(programme_type = nil)
      @enrol_programme_type = programme_type_or_default(programme_type)
    end

    def enrol(school)
      return unless enrol?(school)
      Programmes::Creator.new(school, @enrol_programme_type).create
    end

    def enrol_all
      School.visible.each do |school|
        enrol(school)
      end
    end

    private

    def programme_type_or_default(programme_type)
      programme_type || ProgrammeType.default.first
    end

    def enrol?(school)
      @enrol_programme_type.present? && Targets::SchoolTargetService.targets_enabled?(school)
    end
  end
end