Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 23 additions & 28 deletions app/services/boarding_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ def add_tester(email, first_name, last_name)
add_tester_response.type = "danger"

tester = find_app_tester(email: email, app: app)
if tester
if tester # TODO: check what groups this tester needs to be added to
# Spaceship::TestFlight::Group.perform_for_groups_in_app(app: app, groups: tester_group_names) - tester.groups

add_tester_response.message = t(:message_email_exists)
else
tester = create_tester(
Expand All @@ -51,12 +53,6 @@ def add_tester(email, first_name, last_name)
last_name: last_name,
app: app
)
if testing_is_live?
add_tester_response.message = t(:message_success_live)
else
add_tester_response.message = t(:message_success_pending)
end
add_tester_response.type = "success"
end

begin
Expand All @@ -73,6 +69,13 @@ def add_tester(email, first_name, last_name)
end
end

if testing_is_live?
add_tester_response.message = t(:message_success_live)
else
add_tester_response.message = t(:message_success_pending)
end
add_tester_response.type = "success"

rescue => ex
Rails.logger.error "Could not add #{tester.email} to app: #{app.name}"
raise ex
Expand All @@ -85,18 +88,12 @@ def add_tester(email, first_name, last_name)

def create_tester(email: nil, first_name: nil, last_name: nil, app: nil)
current_user = Spaceship::Members.find(Spaceship::Tunes.client.user)
if current_user.admin?
tester = Spaceship::Tunes::Tester::External.create!(email: email,
first_name: first_name,
last_name: last_name)
Rails.logger.info "Successfully added tester: #{email} to your account"
elsif current_user.app_manager?

if current_user.admin? || current_user.app_manager?
Spaceship::TestFlight::Tester.create_app_level_tester(app_id: app.apple_id,
first_name: first_name,
last_name: last_name,
email: email)
tester = Spaceship::Tunes::Tester::External.find_by_app(app.apple_id, email)
tester = Spaceship::TestFlight::Tester.find(app_id: app.apple_id, email: email)
Rails.logger.info "Successfully added tester: #{email} to app: #{app.name}"
else
raise "Current account doesn't have permission to create a tester"
Expand All @@ -110,15 +107,11 @@ def create_tester(email: nil, first_name: nil, last_name: nil, app: nil)

def find_app_tester(email: nil, app: nil)
current_user = Spaceship::Members.find(Spaceship::Tunes.client.user)
if current_user.admin?
tester = Spaceship::Tunes::Tester::Internal.find(email)
tester ||= Spaceship::Tunes::Tester::External.find(email)
elsif current_user.app_manager?
if current_user.admin? || current_user.app_manager?
unless app
raise "Account #{current_user.email_address} is only an 'App Manager' and therefore you must also define what app this tester (#{email}) should be added to"
raise "You must define what app this tester (#{email}) should be added to"
end
tester = Spaceship::Tunes::Tester::Internal.find_by_app(app.apple_id, email)
tester ||= Spaceship::Tunes::Tester::External.find_by_app(app.apple_id, email)
tester = Spaceship::TestFlight::Tester.find(app_id: app.apple_id, email: email)
else
raise "Account #{current_user.email_address} doesn't have a role that is allowed to administer app testers, current roles: #{current_user.roles}"
tester = nil
Expand Down Expand Up @@ -156,13 +149,15 @@ def ensure_values
raise error_message.join("\n") if error_message.length > 0
end

def testing_is_live?
app.build_trains.each do |version, train|
if train.external_testing_enabled
train.builds.each do |build|
return true if build.external_testing_enabled
end
def testing_is_live? # TODO: clean this when Spaceship::TestFlight::BuildTrains has more attributes
app.build_trains(platform: 'ios').values.each do |trains|
# if train.external_testing_enabled
# train.builds.each do |build|
trains.each do |build|
return true if build.active?
end
# end
# end
end
return false
end
Expand Down