pilot/lib/pilot/tester_manager.rb in fastlane-2.28.9 vs pilot/lib/pilot/tester_manager.rb in fastlane-2.29.0.beta.20170421010107
- old
+ new
@@ -5,25 +5,42 @@
module Pilot
class TesterManager < Manager
def add_tester(options)
start(options)
- app = find_app(app_filter: config[:apple_id] || config[:app_identifier])
- UI.user_error!("You must provide either a Apple ID for the app (with the `:apple_id` option) or app identifier (with the `:app_identifier` option)") unless app
+ if config[:groups]
+ UI.important("Currently pilot doesn't support groups yet, we're working on restoring that functionality")
+ config[:groups] = nil
+ end
- tester = find_or_create_tester(email: config[:email], first_name: config[:first_name], last_name: config[:last_name])
-
begin
- groups = Spaceship::TestFlight::Group.add_tester_to_groups!(tester: tester, app: app, groups: config[:groups])
- if tester.kind_of?(Spaceship::Tunes::Tester::Internal)
- UI.success("Successfully added tester to app #{app.name}")
+ tester = Spaceship::Tunes::Tester::Internal.find(config[:email])
+ tester ||= Spaceship::Tunes::Tester::External.find(config[:email])
+
+ if tester
+ UI.success("Existing tester #{tester.email}")
else
- group_names = groups.map(&:name).join(", ")
- UI.success("Successfully added tester to app #{app.name} in group(s) #{group_names}")
+ tester = Spaceship::Tunes::Tester::External.create!(email: config[:email],
+ first_name: config[:first_name],
+ last_name: config[:last_name])
+ UI.success("Successfully invited tester: #{tester.email}")
end
+
+ app_filter = (config[:apple_id] || config[:app_identifier])
+ if app_filter
+ begin
+ app = Spaceship::Application.find(app_filter)
+ UI.user_error!("Couldn't find app with '#{app_filter}'") unless app
+ app.default_external_group.add_tester!(tester)
+ UI.success("Successfully added tester to app #{app_filter}")
+ rescue => ex
+ UI.error("Could not add #{tester.email} to app: #{ex}")
+ raise ex
+ end
+ end
rescue => ex
- UI.error("Could not add #{tester.email} to app: #{app.name}")
+ UI.error("Could not create tester #{config[:email]}")
raise ex
end
end
def find_tester(options)
@@ -41,33 +58,29 @@
def remove_tester(options)
start(options)
tester = Spaceship::Tunes::Tester::External.find(config[:email])
tester ||= Spaceship::Tunes::Tester::Internal.find(config[:email])
- UI.user_error!("Tester not found: #{config[:email]}") if tester.nil?
- app = find_app(app_filter: config[:apple_id] || config[:app_identifier])
- unless app
- tester.delete!
- UI.success("Successfully removed tester #{tester.email}")
- end
-
- begin
- # If no groups are passed to options, remove the tester from the app-level,
- # otherwise remove the tester from the groups specified.
- if config[:groups].nil? && tester.kind_of?(Spaceship::Tunes::Tester::External)
- test_flight_tester = Spaceship::TestFlight::Tester.find(app_id: app.apple_id, email: tester.email)
- test_flight_tester.remove_from_app!(app_id: app.apple_id)
- UI.success("Successfully removed tester, #{test_flight_tester.email}, from app: #{app.name}")
+ if tester
+ app_filter = (config[:apple_id] || config[:app_identifier])
+ if app_filter
+ begin
+ app = Spaceship::Application.find(app_filter)
+ UI.user_error!("Couldn't find app with '#{app_filter}'") unless app
+ app.default_external_group.remove_tester!(tester)
+ UI.success("Successfully removed tester #{tester.email} from app #{app_filter}")
+ rescue => ex
+ UI.error("Could not remove #{tester.email} from app: #{ex}")
+ raise ex
+ end
else
- groups = Spaceship::TestFlight::Group.remove_tester_from_groups!(tester: tester, app: app, groups: config[:groups])
- group_names = groups.map(&:name).join(", ")
- UI.success("Successfully removed tester #{tester.email} from app #{app.name} in group(s) #{group_names}")
+ tester.delete!
+ UI.success("Successfully removed tester #{tester.email}")
end
- rescue => ex
- UI.error("Could not remove #{tester.email} from app: #{ex}")
- raise ex
+ else
+ UI.error("Tester not found: #{config[:email]}")
end
end
def list_testers(options)
start(options)
@@ -78,37 +91,10 @@
else
list_testers_global
end
end
- private
-
- def find_app(app_filter: nil)
- if app_filter
- app = Spaceship::Application.find(app_filter)
- UI.user_error!("Could not find an app by #{app_filter}") unless app
- return app
- end
- nil
- end
-
- def find_or_create_tester(email: nil, first_name: nil, last_name: nil)
- tester = Spaceship::Tunes::Tester::Internal.find(config[:email])
- tester ||= Spaceship::Tunes::Tester::External.find(config[:email])
-
- if tester
- UI.success("Existing tester #{tester.email}")
- else
- tester = Spaceship::Tunes::Tester::External.create!(email: config[:email],
- first_name: config[:first_name],
- last_name: config[:last_name])
- UI.success("Successfully added tester: #{tester.email} to your account")
- end
- return tester
- rescue => ex
- UI.error("Could not create tester #{config[:email]}")
- raise ex
- end
+ # private
def list_testers_by_app(app_filter)
app = Spaceship::Application.find(app_filter)
UI.user_error!("Couldn't find app with '#{app_filter}'") unless app