class Spaceship::ConnectAPI::Build

Constants

ESSENTIAL_INCLUDES

Attributes

app[RW]
beta_app_review_submission[RW]
beta_build_localizations[RW]
beta_build_metrics[RW]
build_beta_detail[RW]
build_bundles[RW]
expiration_date[RW]
expired[RW]
icon_asset_token[RW]
individual_testers[RW]
min_os_version[RW]
pre_release_version[RW]
processing_state[RW]
uploaded_date[RW]
uses_non_exempt_encryption[RW]
version[RW]

Public Class Methods

all(client: nil, app_id: nil, version: nil, build_number: nil, platform: nil, processing_states: "PROCESSING,FAILED,INVALID,VALID", includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30) click to toggle source

API

# File spaceship/lib/spaceship/connect_api/models/build.rb, line 124
def self.all(client: nil, app_id: nil, version: nil, build_number: nil, platform: nil, processing_states: "PROCESSING,FAILED,INVALID,VALID", includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30)
  client ||= Spaceship::ConnectAPI
  resps = client.get_builds(
    filter: { app: app_id, "preReleaseVersion.version" => version, version: build_number, processingState: processing_states },
    includes: includes,
    sort: sort,
    limit: limit
  ).all_pages
  models = resps.flat_map(&:to_models)

  # Filtering after models are fetched since there is no way to do this in a query param filter
  if platform
    models = models.select do |build|
      build.pre_release_version && build.pre_release_version.platform == platform
    end
  end

  return models
end
get(client: nil, build_id: nil, includes: ESSENTIAL_INCLUDES) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 144
def self.get(client: nil, build_id: nil, includes: ESSENTIAL_INCLUDES)
  client ||= Spaceship::ConnectAPI
  return client.get_build(build_id: build_id, includes: includes).first
end
type() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 55
def self.type
  return "builds"
end

Public Instance Methods

add_beta_groups(client: nil, beta_groups: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 155
def add_beta_groups(client: nil, beta_groups: nil)
  client ||= Spaceship::ConnectAPI
  beta_groups ||= []
  beta_group_ids = beta_groups.map(&:id)
  return client.add_beta_groups_to_build(build_id: id, beta_group_ids: beta_group_ids)
end
app_id() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 68
def app_id
  raise "No app included" unless app
  return app.id
end
app_version() click to toggle source

Helpers

# File spaceship/lib/spaceship/connect_api/models/build.rb, line 63
def app_version
  raise "No pre_release_version included" unless pre_release_version
  return pre_release_version.version
end
bundle_id() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 73
def bundle_id
  raise "No app included" unless app
  return app.bundle_id
end
expire!(client: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 189
def expire!(client: nil)
  client ||= Spaceship::ConnectAPI
  return client.patch_builds(build_id: id, attributes: { expired: true })
end
get_beta_build_localizations(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 162
def get_beta_build_localizations(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
  client ||= Spaceship::ConnectAPI
  resps = client.get_beta_build_localizations(
    filter: { build: id },
    includes: includes,
    sort: sort,
    limit: limit
  ).all_pages
  return resps.flat_map(&:to_models)
end
get_build_beta_details(client: nil, filter: {}, includes: nil, limit: nil, sort: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 173
def get_build_beta_details(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
  client ||= Spaceship::ConnectAPI
  resps = client.get_build_beta_details(
    filter: { build: id },
    includes: includes,
    sort: sort,
    limit: limit
  ).all_pages
  return resps.flat_map(&:to_models)
end
missing_export_compliance?() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 100
def missing_export_compliance?
  raise "No build_beta_detail included" unless build_beta_detail
  return build_beta_detail.missing_export_compliance?
end
platform() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 78
def platform
  raise "No pre_release_version included" unless pre_release_version
  return pre_release_version.platform
end
post_beta_app_review_submission(client: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 184
def post_beta_app_review_submission(client: nil)
  client ||= Spaceship::ConnectAPI
  return client.post_beta_app_review_submissions(build_id: id)
end
processed?() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 83
def processed?
  return processing_state != ProcessingState::PROCESSING
end
ready_for_beta_submission?() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 95
def ready_for_beta_submission?
  raise "No build_beta_detail included" unless build_beta_detail
  return build_beta_detail.ready_for_beta_submission?
end
ready_for_external_testing?() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 91
def ready_for_external_testing?
  return build_beta_detail.nil? == false && build_beta_detail.ready_for_external_testing?
end
ready_for_internal_testing?() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 87
def ready_for_internal_testing?
  return build_beta_detail.nil? == false && build_beta_detail.ready_for_internal_testing?
end
to_testflight_build() click to toggle source

This is here temporarily until the removal of Spaceship::TestFlight

# File spaceship/lib/spaceship/connect_api/models/build.rb, line 106
def to_testflight_build
  h = {
    'id' => id,
    'buildVersion' => version,
    'uploadDate' => uploaded_date,
    'externalState' => processed? ? Spaceship::TestFlight::Build::BUILD_STATES[:active] : Spaceship::TestFlight::Build::BUILD_STATES[:processing],
    'appAdamId' => app_id,
    'bundleId' => bundle_id,
    'trainVersion' => app_version
  }

  return Spaceship::TestFlight::Build.new(h)
end
update(client: nil, attributes: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 149
def update(client: nil, attributes: nil)
  client ||= Spaceship::ConnectAPI
  attributes = reverse_attr_mapping(attributes)
  return client.patch_builds(build_id: id, attributes: attributes).first
end