spaceship/lib/spaceship/connect_api/models/app.rb in fastlane_hotfix-2.165.1 vs spaceship/lib/spaceship/connect_api/models/app.rb in fastlane_hotfix-2.187.0

- old
+ new

@@ -67,101 +67,118 @@ # # Apps # - def self.all(filter: {}, includes: ESSENTIAL_INCLUDES, limit: nil, sort: nil) - resps = Spaceship::ConnectAPI.get_apps(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + def self.all(client: nil, filter: {}, includes: ESSENTIAL_INCLUDES, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI + resps = client.get_apps(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end - def self.find(bundle_id) - return all(filter: { bundleId: bundle_id }).find do |app| + def self.find(bundle_id, client: nil) + client ||= Spaceship::ConnectAPI + return all(client: client, filter: { bundleId: bundle_id }).find do |app| app.bundle_id == bundle_id end end - def self.create(name: nil, version_string: nil, sku: nil, primary_locale: nil, bundle_id: nil, platforms: nil, company_name: nil) - Spaceship::ConnectAPI.post_app( + def self.create(client: nil, name: nil, version_string: nil, sku: nil, primary_locale: nil, bundle_id: nil, platforms: nil, company_name: nil) + client ||= Spaceship::ConnectAPI + client.post_app( name: name, version_string: version_string, sku: sku, primary_locale: primary_locale, bundle_id: bundle_id, platforms: platforms, company_name: company_name ) end - def self.get(app_id: nil, includes: "appStoreVersions") - return Spaceship::ConnectAPI.get_app(app_id: app_id, includes: includes).first + def self.get(client: nil, app_id: nil, includes: "appStoreVersions") + client ||= Spaceship::ConnectAPI + return client.get_app(app_id: app_id, includes: includes).first end - def update(attributes: nil, app_price_tier_id: nil, territory_ids: nil) + def update(client: nil, attributes: nil, app_price_tier_id: nil, territory_ids: nil) + client ||= Spaceship::ConnectAPI attributes = reverse_attr_mapping(attributes) - return Spaceship::ConnectAPI.patch_app(app_id: id, attributes: attributes, app_price_tier_id: app_price_tier_id, territory_ids: territory_ids) + return client.patch_app(app_id: id, attributes: attributes, app_price_tier_id: app_price_tier_id, territory_ids: territory_ids) end # # App Info # - def fetch_live_app_info(includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES) + def fetch_live_app_info(client: nil, includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI states = [ Spaceship::ConnectAPI::AppInfo::AppStoreState::READY_FOR_SALE, Spaceship::ConnectAPI::AppInfo::AppStoreState::PENDING_APPLE_RELEASE, Spaceship::ConnectAPI::AppInfo::AppStoreState::PENDING_DEVELOPER_RELEASE, Spaceship::ConnectAPI::AppInfo::AppStoreState::PROCESSING_FOR_APP_STORE, - Spaceship::ConnectAPI::AppInfo::AppStoreState::IN_REVIEW + Spaceship::ConnectAPI::AppInfo::AppStoreState::IN_REVIEW, + Spaceship::ConnectAPI::AppInfo::AppStoreState::DEVELOPER_REMOVED_FROM_SALE ] - resp = Spaceship::ConnectAPI.get_app_infos(app_id: id, includes: includes) + resp = client.get_app_infos(app_id: id, includes: includes) return resp.to_models.select do |model| states.include?(model.app_store_state) end.first end - def fetch_edit_app_info(includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES) + def fetch_edit_app_info(client: nil, includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI states = [ Spaceship::ConnectAPI::AppInfo::AppStoreState::PREPARE_FOR_SUBMISSION, Spaceship::ConnectAPI::AppInfo::AppStoreState::DEVELOPER_REJECTED, Spaceship::ConnectAPI::AppInfo::AppStoreState::REJECTED, Spaceship::ConnectAPI::AppInfo::AppStoreState::METADATA_REJECTED, Spaceship::ConnectAPI::AppInfo::AppStoreState::WAITING_FOR_REVIEW, Spaceship::ConnectAPI::AppInfo::AppStoreState::INVALID_BINARY ] - resp = Spaceship::ConnectAPI.get_app_infos(app_id: id, includes: includes) + resp = client.get_app_infos(app_id: id, includes: includes) return resp.to_models.select do |model| states.include?(model.app_store_state) end.first end + def fetch_latest_app_info(client: nil, includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI + resp = client.get_app_infos(app_id: id, includes: includes) + return resp.to_models.first + end + # # Available Territories # - def fetch_available_territories(filter: {}, includes: nil, limit: nil, sort: nil) + def fetch_available_territories(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} - resps = Spaceship::ConnectAPI.get_available_territories(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_available_territories(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end # # App Pricing # - def fetch_app_prices(filter: {}, includes: "priceTier", limit: nil, sort: nil) - resp = Spaceship::ConnectAPI.get_app_prices(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort) + def fetch_app_prices(client: nil, filter: {}, includes: "priceTier", limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI + resp = client.get_app_prices(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort) return resp.to_models end # # App Store Versions # - def reject_version_if_possible!(platform: nil) + def reject_version_if_possible!(client: nil, platform: nil) + client ||= Spaceship::ConnectAPI platform ||= Spaceship::ConnectAPI::Platform::IOS filter = { appStoreState: [ Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_APPLE_RELEASE, Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_DEVELOPER_RELEASE, @@ -170,11 +187,11 @@ ].join(","), platform: platform } # Get the latest version - version = get_app_store_versions(filter: filter, includes: "appStoreVersionSubmission") + version = get_app_store_versions(client: client, filter: filter, includes: "appStoreVersionSubmission") .sort_by { |v| Gem::Version.new(v.version_string) } .last return false if version.nil? return version.reject! @@ -182,50 +199,57 @@ # Will make sure the current edit_version matches the given version number # This will either create a new version or change the version number # from an existing version # @return (Bool) Was something changed? - def ensure_version!(version_string, platform: nil) - app_store_version = get_edit_app_store_version(platform: platform) + def ensure_version!(version_string, platform: nil, client: nil) + client ||= Spaceship::ConnectAPI + app_store_version = get_edit_app_store_version(client: client, platform: platform) if app_store_version if version_string != app_store_version.version_string attributes = { versionString: version_string } - app_store_version.update(attributes: attributes) + app_store_version.update(client: client, attributes: attributes) return true end return false else attributes = { versionString: version_string, platform: platform } - Spaceship::ConnectAPI.post_app_store_version(app_id: id, attributes: attributes) + client.post_app_store_version(app_id: id, attributes: attributes) return true end end - def get_latest_app_store_version(platform: nil, includes: nil) + def get_latest_app_store_version(client: nil, platform: nil, includes: nil) + client ||= Spaceship::ConnectAPI platform ||= Spaceship::ConnectAPI::Platform::IOS filter = { platform: platform } # Get the latest version - return get_app_store_versions(filter: filter, includes: includes) + return get_app_store_versions(client: client, filter: filter, includes: includes) .sort_by { |v| Date.parse(v.created_date) } .last end - def get_live_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + def get_live_app_store_version(client: nil, platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI platform ||= Spaceship::ConnectAPI::Platform::IOS filter = { - appStoreState: Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_SALE, + appStoreState: [ + Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_SALE, + Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::DEVELOPER_REMOVED_FROM_SALE + ].join(","), platform: platform } - return get_app_store_versions(filter: filter, includes: includes).first + return get_app_store_versions(client: client, filter: filter, includes: includes).first end - def get_edit_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + def get_edit_app_store_version(client: nil, platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI platform ||= Spaceship::ConnectAPI::Platform::IOS filter = { appStoreState: [ Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PREPARE_FOR_SUBMISSION, Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::DEVELOPER_REJECTED, @@ -236,39 +260,47 @@ ].join(","), platform: platform } # Get the latest version - return get_app_store_versions(filter: filter, includes: includes) + return get_app_store_versions(client: client, filter: filter, includes: includes) .sort_by { |v| Gem::Version.new(v.version_string) } .last end - def get_in_review_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + def get_in_review_app_store_version(client: nil, platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI platform ||= Spaceship::ConnectAPI::Platform::IOS filter = { appStoreState: Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::IN_REVIEW, platform: platform } - return get_app_store_versions(filter: filter, includes: includes).first + return get_app_store_versions(client: client, filter: filter, includes: includes).first end - def get_pending_release_app_store_version(platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + def get_pending_release_app_store_version(client: nil, platform: nil, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES) + client ||= Spaceship::ConnectAPI platform ||= Spaceship::ConnectAPI::Platform::IOS filter = { appStoreState: [ Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_APPLE_RELEASE, Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_DEVELOPER_RELEASE ].join(','), platform: platform } - return get_app_store_versions(filter: filter, includes: includes).first + return get_app_store_versions(client: client, filter: filter, includes: includes).first end - def get_app_store_versions(filter: {}, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES, limit: nil, sort: nil) - resps = Spaceship::ConnectAPI.get_app_store_versions(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort).all_pages - return resps.flat_map(&:to_models) + def get_app_store_versions(client: nil, filter: {}, includes: Spaceship::ConnectAPI::AppStoreVersion::ESSENTIAL_INCLUDES, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI + if limit.nil? + resps = client.get_app_store_versions(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort).all_pages + return resps.flat_map(&:to_models) + else + resp = client.get_app_store_versions(app_id: id, filter: filter, includes: includes, limit: limit, sort: sort) + return resp.to_models + end end # # B2B # @@ -289,68 +321,75 @@ # # Beta Feedback # - def get_beta_feedback(filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil) + def get_beta_feedback(client: nil, filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} filter["build.app"] = id - resps = Spaceship::ConnectAPI.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end # # Beta Testers # - def get_beta_testers(filter: {}, includes: nil, limit: nil, sort: nil) + def get_beta_testers(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} filter[:apps] = id - resps = Spaceship::ConnectAPI.get_beta_testers(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_beta_testers(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end # # Builds # - def get_builds(filter: {}, includes: nil, limit: nil, sort: nil) + def get_builds(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} filter[:app] = id - resps = Spaceship::ConnectAPI.get_builds(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_builds(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end - def get_build_deliveries(filter: {}, includes: nil, limit: nil, sort: nil) + def get_build_deliveries(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} filter[:app] = id - resps = Spaceship::ConnectAPI.get_build_deliveries(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_build_deliveries(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end - def get_beta_app_localizations(filter: {}, includes: nil, limit: nil, sort: nil) + def get_beta_app_localizations(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} filter[:app] = id - resps = Spaceship::ConnectAPI.get_beta_app_localizations(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_beta_app_localizations(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end - def get_beta_groups(filter: {}, includes: nil, limit: nil, sort: nil) + def get_beta_groups(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) + client ||= Spaceship::ConnectAPI filter ||= {} filter[:app] = id - resps = Spaceship::ConnectAPI.get_beta_groups(filter: filter, includes: includes, limit: limit, sort: sort).all_pages + resps = client.get_beta_groups(filter: filter, includes: includes, limit: limit, sort: sort).all_pages return resps.flat_map(&:to_models) end - def create_beta_group(group_name: nil, public_link_enabled: false, public_link_limit: 10_000, public_link_limit_enabled: false) - resps = Spaceship::ConnectAPI.create_beta_group( + def create_beta_group(client: nil, group_name: nil, public_link_enabled: false, public_link_limit: 10_000, public_link_limit_enabled: false) + client ||= Spaceship::ConnectAPI + resps = client.create_beta_group( app_id: id, group_name: group_name, public_link_enabled: public_link_enabled, public_link_limit: public_link_limit, public_link_limit_enabled: public_link_limit_enabled @@ -376,12 +415,13 @@ # # Users # - def add_users(user_ids: nil) + def add_users(client: nil, user_ids: nil) + client ||= Spaceship::ConnectAPI user_ids.each do |user_id| - Spaceship::ConnectAPI.add_user_visible_apps(user_id: user_id, app_ids: [id]) + client.add_user_visible_apps(user_id: user_id, app_ids: [id]) end end end end end