Skip to content

Commit

Permalink
Allow updating multiple locales when preparing store version
Browse files Browse the repository at this point in the history
  • Loading branch information
nid90 committed Aug 26, 2024
1 parent 0fc0600 commit 490ad78
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions lib/app_store/connect.rb
Original file line number Diff line number Diff line change
Expand Up @@ -178,21 +178,7 @@ def prepare_release(build_number:, version:, is_phased_release:, metadata:, is_f
latest_version = create_app_store_version(version, build)
end

locale = latest_version.app_store_version_localizations.find { |l| metadata[:locale] == l.locale }
raise LocalizationNotFoundError if locale.nil?

locale_params = if metadata[:whats_new].nil? || metadata[:whats_new].empty?
{"whatsNew" => "The latest version contains bug fixes and performance improvements."}
else
{"whatsNew" => metadata[:whats_new]}
end

unless metadata[:promotional_text].nil? || metadata[:promotional_text].empty?
locale_params["promotionalText"] = metadata[:promotional_text]
end

log "Updating locale for the app store version", {locale: locale.to_json, params: locale_params}
locale.update(attributes: locale_params)
metadata.each { update_version_locale!(latest_version, _1) }

if is_phased_release && latest_version.app_store_version_phased_release.nil?
log "Creating phased release for the app store version"
Expand Down Expand Up @@ -504,6 +490,24 @@ def create_app_store_version(version, build)
end
end

def update_version_locale!(app_store_version, metadata)
locale = app_store_version.app_store_version_localizations.find { |l| metadata[:locale] == l.locale }
return if locale.nil?

locale_params = if metadata[:whats_new].nil? || metadata[:whats_new].empty?
{"whatsNew" => "The latest version contains bug fixes and performance improvements."}
else
{"whatsNew" => metadata[:whats_new]}
end

unless metadata[:promotional_text].nil? || metadata[:promotional_text].empty?
locale_params["promotionalText"] = metadata[:promotional_text]
end

log "Updating locale for the app store version", {locale: locale.to_json, params: locale_params}
locale.update(attributes: locale_params)
end

# no of api calls: 1
def update_version_details!(app_store_version, version, build)
attempts ||= 1
Expand Down

0 comments on commit 490ad78

Please sign in to comment.