class Pilot::TesterExporter

Public Instance Methods

export_testers(options) click to toggle source
# File lib/pilot/tester_exporter.rb, line 6
def export_testers(options)
  UI.user_error!("Export file path is required") unless options[:testers_file_path]

  start(options)
  require 'csv'

  app_filter = (config[:apple_id] || config[:app_identifier])
  if app_filter
    app = Spaceship::Application.find(app_filter)
    testers = Spaceship::Tunes::Tester::External.all_by_app(app.apple_id)
  else
    testers = Spaceship::Tunes::Tester::External.all
  end

  file = config[:testers_file_path]

  CSV.open(file, "w") do |csv|
    csv << ['First', 'Last', 'Email', 'Groups', 'Devices', 'Installed Version', 'Install Date']

    testers.each do |tester|
      group_names = tester.groups_list(';') || ""
      install_version = tester.full_version || ""
      pretty_date = tester.pretty_install_date || ""

      csv << [tester.first_name, tester.last_name, tester.email, group_names, tester.devices.count, install_version, pretty_date]
    end

    UI.success("Successfully exported CSV to #{file}")
  end
end