class Reporting::Admissions::ApplicantJob < Reporting::Job
  def process
    create_tmp_file
    @tmp_file.write("\uFEFF" + csv_service)
    @tmp_file.rewind
    @filename = "#{@params['csv_type']}_#{timestamp}.csv"
    save_to_user
    send_report
  end

  private
    def csv_service
      ::Csv::Admissions::Applicants.const_get(service_name).call(@school, @params)
    end

    def service_name
      name = @params['csv_type'].sub('applicant', '').camelize
      "#{name}Service"
    end
end
