spaceship/lib/spaceship/tunes/tunes_client.rb in fastlane-2.74.1 vs spaceship/lib/spaceship/tunes/tunes_client.rb in fastlane-2.75.0.beta.20180109010003
- old
+ new
@@ -59,49 +59,49 @@
def select_team
t_id = (ENV['FASTLANE_ITC_TEAM_ID'] || '').strip
t_name = (ENV['FASTLANE_ITC_TEAM_NAME'] || '').strip
if t_name.length > 0 && t_id.length.zero? # we prefer IDs over names, they are unique
- puts "Looking for iTunes Connect Team with name #{t_name}" if Spaceship::Globals.verbose?
+ puts("Looking for iTunes Connect Team with name #{t_name}") if Spaceship::Globals.verbose?
teams.each do |t|
t_id = t['contentProvider']['contentProviderId'].to_s if t['contentProvider']['name'].casecmp(t_name.downcase).zero?
end
- puts "Could not find team with name '#{t_name}', trying to fallback to default team" if t_id.length.zero?
+ puts("Could not find team with name '#{t_name}', trying to fallback to default team") if t_id.length.zero?
end
t_id = teams.first['contentProvider']['contentProviderId'].to_s if teams.count == 1
if t_id.length > 0
- puts "Looking for iTunes Connect Team with ID #{t_id}" if Spaceship::Globals.verbose?
+ puts("Looking for iTunes Connect Team with ID #{t_id}") if Spaceship::Globals.verbose?
# actually set the team id here
self.team_id = t_id
return
end
# user didn't specify a team... #thisiswhywecanthavenicethings
loop do
- puts "Multiple iTunes Connect teams found, please enter the number of the team you want to use: "
- puts "Note: to automatically choose the team, provide either the iTunes Connect Team ID, or the Team Name in your fastlane/Appfile:"
- puts "Alternatively you can pass the team name or team ID using the `FASTLANE_ITC_TEAM_ID` or `FASTLANE_ITC_TEAM_NAME` environment variable"
+ puts("Multiple iTunes Connect teams found, please enter the number of the team you want to use: ")
+ puts("Note: to automatically choose the team, provide either the iTunes Connect Team ID, or the Team Name in your fastlane/Appfile:")
+ puts("Alternatively you can pass the team name or team ID using the `FASTLANE_ITC_TEAM_ID` or `FASTLANE_ITC_TEAM_NAME` environment variable")
first_team = teams.first["contentProvider"]
- puts ""
- puts " itc_team_id \"#{first_team['contentProviderId']}\""
- puts ""
- puts "or"
- puts ""
- puts " itc_team_name \"#{first_team['name']}\""
- puts ""
+ puts("")
+ puts(" itc_team_id \"#{first_team['contentProviderId']}\"")
+ puts("")
+ puts("or")
+ puts("")
+ puts(" itc_team_name \"#{first_team['name']}\"")
+ puts("")
teams.each_with_index do |team, i|
- puts "#{i + 1}) \"#{team['contentProvider']['name']}\" (#{team['contentProvider']['contentProviderId']})"
+ puts("#{i + 1}) \"#{team['contentProvider']['name']}\" (#{team['contentProvider']['contentProviderId']})")
end
unless Spaceship::Client::UserInterface.interactive?
- puts "Multiple teams found on iTunes Connect, Your Terminal is running in non-interactive mode! Cannot continue from here."
- puts "Please check that you set FASTLANE_ITC_TEAM_ID or FASTLANE_ITC_TEAM_NAME to the right value."
+ puts("Multiple teams found on iTunes Connect, Your Terminal is running in non-interactive mode! Cannot continue from here.")
+ puts("Please check that you set FASTLANE_ITC_TEAM_ID or FASTLANE_ITC_TEAM_NAME to the right value.")
raise "Multiple iTunes Connect Teams found; unable to choose, terminal not ineractive!"
end
selected = ($stdin.gets || '').strip.to_i - 1
team_to_use = teams[selected] if selected >= 0
@@ -149,11 +149,11 @@
# rubocop:disable Metrics/PerceivedComplexity
# If the response is coming from a flaky api, set flaky_api_call to true so we retry a little.
# Patience is a virtue.
def handle_itc_response(raw, flaky_api_call: false)
return unless raw
- return unless raw.kind_of? Hash
+ return unless raw.kind_of?(Hash)
data = raw['data'] || raw # sometimes it's with data, sometimes it isn't
error_keys_to_check = [
"sectionErrorKeys",
"sectionInfoKeys",
@@ -182,11 +182,11 @@
# Prepend the error with the language so it's easier to understand for the user
errors += value.collect do |current_error_message|
current_language ? "[#{current_language}]: #{current_error_message}" : current_error_message
end
end
- elsif hash.kind_of? Array
+ elsif hash.kind_of?(Array)
hash.each do |value|
errors += handle_response_hash.call(value)
end
# else: We don't care about simple values
end
@@ -255,11 +255,11 @@
parse_response(r, 'data')
end
def update_app_details!(app_id, data)
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/details"
+ req.url("ra/apps/#{app_id}/details")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
@@ -274,11 +274,11 @@
# (String): The version number is shown on the App Store and should match the one you used in Xcode.
# @param sku (String): A unique ID for your app that is not visible on the App Store.
# @param bundle_id (String): The bundle ID must match the one you used in Xcode. It
# can't be changed after you submit your first build.
def create_application!(name: nil, primary_language: nil, version: nil, sku: nil, bundle_id: nil, bundle_id_suffix: nil, company_name: nil, platform: nil, itunes_connect_users: nil)
- puts "The `version` parameter is deprecated. Use `Spaceship::Tunes::Application.ensure_version!` method instead" if version
+ puts("The `version` parameter is deprecated. Use `Spaceship::Tunes::Application.ensure_version!` method instead") if version
# First, we need to fetch the data from Apple, which we then modify with the user's values
primary_language ||= "English"
platform ||= "ios"
r = request(:get, "ra/apps/create/v2/?platformString=#{platform}")
@@ -298,27 +298,27 @@
data['initialPlatform'] = platform
data['enabledPlatformsForCreation'] = { value: [platform] }
unless itunes_connect_users.nil?
data['iTunesConnectUsers']['grantedAllUsers'] = false
- data['iTunesConnectUsers']['grantedUsers'] = data['iTunesConnectUsers']['availableUsers'].select { |user| itunes_connect_users.include? user['username'] }
+ data['iTunesConnectUsers']['grantedUsers'] = data['iTunesConnectUsers']['availableUsers'].select { |user| itunes_connect_users.include?(user['username']) }
end
# Now send back the modified hash
r = request(:post) do |req|
- req.url 'ra/apps/create/v2'
+ req.url('ra/apps/create/v2')
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
data = parse_response(r, 'data')
handle_itc_response(data)
end
def create_version!(app_id, version_number, platform = 'ios')
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/platforms/#{platform}/versions/create/"
+ req.url("ra/apps/#{app_id}/platforms/#{platform}/versions/create/")
req.body = {
version: {
value: version_number.to_s
}
}.to_json
@@ -402,11 +402,11 @@
raise "app_id is required" unless app_id
raise "version_id is required" unless version_id.to_i > 0
with_tunes_retry do
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/platforms/ios/versions/#{version_id}"
+ req.url("ra/apps/#{app_id}/platforms/ios/versions/#{version_id}")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body, flaky_api_call: true)
@@ -431,11 +431,11 @@
payload << {
dsId: user_id,
email: email
}
request(:post) do |req|
- req.url "ra/users/itc/delete"
+ req.url("ra/users/itc/delete")
req.body = payload.to_json
req.headers['Content-Type'] = 'application/json'
end
end
@@ -465,11 +465,11 @@
data["user"]["userSoftwares"] = { value: { grantAllSoftware: false, grantedSoftwareAdamIds: apps } }
end
# send the changes back to Apple
r = request(:post) do |req|
- req.url "ra/users/itc/create"
+ req.url("ra/users/itc/create")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -496,11 +496,11 @@
data["user"]["userSoftwares"] = { value: { grantAllSoftware: false, grantedSoftwareAdamIds: apps } }
end
# send the changes back to Apple
r = request(:post) do |req|
- req.url "ra/users/itc/#{member.user_id}/roles"
+ req.url("ra/users/itc/#{member.user_id}/roles")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -531,11 +531,11 @@
end
end
# send the changes back to Apple
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/pricing/intervals"
+ req.url("ra/apps/#{app_id}/pricing/intervals")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -598,11 +598,11 @@
data["countries"] = availability.territories.map { |territory| { 'code' => territory.code } }
data["theWorld"] = availability.include_future_territories.nil? ? true : availability.include_future_territories
# send the changes back to Apple
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/pricing/intervals"
+ req.url("ra/apps/#{app_id}/pricing/intervals")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
data = parse_response(r, 'data')
@@ -800,11 +800,11 @@
if retry_error_messages.any? { |message| ex.to_s.include?(message) }
tries -= 1
if tries > 0
logger.warn("Received temporary server error from iTunes Connect. Retrying the request...")
- sleep 3 unless Object.const_defined?("SpecHelper")
+ sleep(3) unless Object.const_defined?("SpecHelper")
retry
end
end
raise Spaceship::Client::UnexpectedResponse, "Temporary iTunes Connect error: #{ex}"
@@ -816,21 +816,21 @@
# The request fails if this key is present in the data
data.delete("dailySubmissionCountByPlatform")
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/testingTypes/#{testing_type}/trains/"
+ req.url("ra/apps/#{app_id}/testingTypes/#{testing_type}/trains/")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
def remove_testflight_build_from_review!(app_id: nil, train: nil, build_number: nil, platform: 'ios')
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/platforms/#{platform}/trains/#{train}/builds/#{build_number}/reject"
+ req.url("ra/apps/#{app_id}/platforms/#{platform}/trains/#{train}/builds/#{build_number}/reject")
req.body = {}.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -875,11 +875,11 @@
review_password = build_info['reviewPassword']['value']
build_info['reviewAccountRequired']['value'] = (review_user_name.to_s + review_password.to_s).length > 0
# Now send everything back to iTC
r = request(:post) do |req| # same URL, but a POST request
- req.url url
+ req.url(url)
req.body = build_info.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -944,11 +944,11 @@
}
}
}
r = request(:post) do |req| # same URL, but a POST request
- req.url "ra/apps/#{app_id}/platforms/#{platform}/trains/#{train}/builds/#{build_number}/review/submit"
+ req.url("ra/apps/#{app_id}/platforms/#{platform}/trains/#{train}/builds/#{build_number}/review/submit")
req.body = review_info.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
@@ -956,11 +956,11 @@
# rubocop:enable Metrics/ParameterLists
def get_build_info_for_review(app_id: nil, train: nil, build_number: nil, platform: 'ios')
url = "ra/apps/#{app_id}/platforms/#{platform}/trains/#{train}/builds/#{build_number}/testInformation"
r = request(:get) do |req|
- req.url url
+ req.url(url)
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
r.body['data']
@@ -973,11 +973,11 @@
def prepare_app_submissions(app_id, version)
raise "app_id is required" unless app_id
raise "version is required" unless version
r = request(:get) do |req|
- req.url "ra/apps/#{app_id}/versions/#{version}/submit/summary"
+ req.url("ra/apps/#{app_id}/versions/#{version}/submit/summary")
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
parse_response(r, 'data')
@@ -986,11 +986,11 @@
def send_app_submission(app_id, version, data)
raise "app_id is required" unless app_id
# ra/apps/1039164429/version/submit/complete
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/versions/#{version}/submit/complete"
+ req.url("ra/apps/#{app_id}/versions/#{version}/submit/complete")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
@@ -1017,11 +1017,11 @@
def release!(app_id, version)
raise "app_id is required" unless app_id
raise "version is required" unless version
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/versions/#{version}/releaseToStore"
+ req.url("ra/apps/#{app_id}/versions/#{version}/releaseToStore")
req.headers['Content-Type'] = 'application/json'
req.body = app_id.to_s
end
handle_itc_response(r.body)
@@ -1077,11 +1077,11 @@
# updates an In-App-Purchases-Family
def update_iap_family!(app_id: nil, family_id: nil, data: nil)
with_tunes_retry do
r = request(:put) do |req|
- req.url "ra/apps/#{app_id}/iaps/family/#{family_id}/"
+ req.url("ra/apps/#{app_id}/iaps/family/#{family_id}/")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -1089,11 +1089,11 @@
# updates an In-App-Purchases
def update_iap!(app_id: nil, purchase_id: nil, data: nil)
with_tunes_retry do
r = request(:put) do |req|
- req.url "ra/apps/#{app_id}/iaps/#{purchase_id}"
+ req.url("ra/apps/#{app_id}/iaps/#{purchase_id}")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -1107,11 +1107,11 @@
data['activeAddOns'][0]['referenceName'] = { value: reference_name }
data['name'] = { value: name }
data["details"]["value"] = versions
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/iaps/family/"
+ req.url("ra/apps/#{app_id}/iaps/family/")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -1167,18 +1167,18 @@
data["versions"][0]["details"]["value"] = versions_array
data['versions'][0]["reviewNotes"] = { value: review_notes }
if review_screenshot
# Upload Screenshot:
- upload_file = UploadFile.from_path review_screenshot
+ upload_file = UploadFile.from_path(review_screenshot)
screenshot_data = upload_purchase_review_screenshot(app_id, upload_file)
data["versions"][0]["reviewScreenshot"] = screenshot_data
end
# Now send back the modified hash
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/iaps"
+ req.url("ra/apps/#{app_id}/iaps")
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
handle_itc_response(r.body)
end
@@ -1193,11 +1193,11 @@
end
def create_sandbox_tester!(tester_class: nil, email: nil, password: nil, first_name: nil, last_name: nil, country: nil)
url = tester_class.url[:create]
r = request(:post) do |req|
- req.url url
+ req.url(url)
req.body = {
user: {
emailAddress: { value: email },
password: { value: password },
confirmPassword: { value: password },
@@ -1220,11 +1220,11 @@
end
def delete_sandbox_testers!(tester_class, emails)
url = tester_class.url[:delete]
request(:post) do |req|
- req.url url
+ req.url(url)
req.body = emails.map do |email|
{
emailAddress: {
value: email
}
@@ -1262,11 +1262,11 @@
agreedToContract: true,
versionId: version_id
}]
url = "ra/apps/#{app_id}/promocodes/versions"
r = request(:post) do |req|
- req.url url
+ req.url(url)
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
parse_response(r, 'data')
end
@@ -1283,11 +1283,11 @@
def reject!(app_id, version)
raise "app_id is required" unless app_id
raise "version is required" unless version
r = request(:post) do |req|
- req.url "ra/apps/#{app_id}/versions/#{version}/reject"
+ req.url("ra/apps/#{app_id}/versions/#{version}/reject")
req.headers['Content-Type'] = 'application/json'
req.body = app_id.to_s
end
handle_itc_response(r.body)
@@ -1299,22 +1299,22 @@
def with_tunes_retry(tries = 5, potential_server_error_tries = 3, &_block)
return yield
rescue Spaceship::TunesClient::ITunesConnectTemporaryError => ex
unless (tries -= 1).zero?
msg = "iTunes Connect temporary error received: '#{ex.message}'. Retrying after 60 seconds (remaining: #{tries})..."
- puts msg
- logger.warn msg
- sleep 60 unless Object.const_defined?("SpecHelper")
+ puts(msg)
+ logger.warn(msg)
+ sleep(60) unless Object.const_defined?("SpecHelper")
retry
end
raise ex # re-raise the exception
rescue Spaceship::TunesClient::ITunesConnectPotentialServerError => ex
unless (potential_server_error_tries -= 1).zero?
msg = "Potential server error received: '#{ex.message}'. Retrying after 10 seconds (remaining: #{tries})..."
- puts msg
- logger.warn msg
- sleep 10 unless Object.const_defined?("SpecHelper")
+ puts(msg)
+ logger.warn(msg)
+ sleep(10) unless Object.const_defined?("SpecHelper")
retry
end
raise ex
end
@@ -1359,10 +1359,10 @@
}
]
}
r = request(:post) do |req|
- req.url url
+ req.url(url)
req.body = data.to_json
req.headers['Content-Type'] = 'application/json'
end
data = parse_response(r, 'data')