class Spaceship::ConnectAPI::Build

Constants

ESSENTIAL_INCLUDES

Attributes

app[RW]
beta_app_review_submission[RW]
beta_build_metrics[RW]
build_beta_detail[RW]
expiration_date[RW]
expired[RW]
icon_asset_token[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(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 105
def self.all(app_id: nil, version: nil, build_number: nil, platform: nil, processing_states: "PROCESSING,FAILED,INVALID,VALID", includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30)
  resps = Spaceship::ConnectAPI.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.map(&:to_models).flatten

  # 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(build_id: nil, includes: ESSENTIAL_INCLUDES) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 124
def self.get(build_id: nil, includes: ESSENTIAL_INCLUDES)
  return Spaceship::ConnectAPI.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 49
def self.type
  return "builds"
end

Public Instance Methods

add_beta_groups(beta_groups: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 128
def add_beta_groups(beta_groups: nil)
  beta_groups ||= []
  beta_group_ids = beta_groups.map(&:id)
  return Spaceship::ConnectAPI.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 62
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 57
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 67
def bundle_id
  raise "No app included" unless app
  return app.bundle_id
end
get_beta_build_localizations(filter: {}, includes: nil, limit: nil, sort: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 134
def get_beta_build_localizations(filter: {}, includes: nil, limit: nil, sort: nil)
  resps = Spaceship::ConnectAPI.get_beta_build_localizations(
    filter: { build: id },
    includes: includes,
    sort: sort,
    limit: limit
  ).all_pages
  return resps.map(&:to_models).flatten
end
get_build_beta_details(filter: {}, includes: nil, limit: nil, sort: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 144
def get_build_beta_details(filter: {}, includes: nil, limit: nil, sort: nil)
  resps = Spaceship::ConnectAPI.get_build_beta_details(
    filter: { build: id },
    includes: includes,
    sort: sort,
    limit: limit
  ).all_pages
  return resps.map(&:to_models).flatten
end
platform() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 72
def platform
  raise "No pre_release_version included" unless pre_release_version
  return pre_release_version.platform
end
post_beta_app_review_submission() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 154
def post_beta_app_review_submission
  return Spaceship::ConnectAPI.post_beta_app_review_submissions(build_id: id)
end
processed?() click to toggle source
# File spaceship/lib/spaceship/connect_api/models/build.rb, line 77
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 81
def ready_for_beta_submission?
  raise "No build_beat_detail included" unless build_beta_detail
  return build_beta_detail.ready_for_beta_submission?
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 87
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