class PactBroker::Deployments::ReleasedVersionService

Public Class Methods

create_or_update(uuid_for_new_released_version, version, environment) click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 17
def self.create_or_update(uuid_for_new_released_version, version, environment)
  released_version = ReleasedVersion.new(
    uuid: uuid_for_new_released_version,
    version: version,
    pacticipant_id: version.pacticipant_id,
    environment: environment
  ).insert_ignore
  # Can't reproduce it in a test, but am getting a "Attempt to update object did not result in a single row modification"
  # error when marking an existing row as supported again IRL.
  ReleasedVersion.where(id: released_version.id).set_currently_supported
  released_version.refresh
end
find_by_uuid(uuid) click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 13
def self.find_by_uuid(uuid)
  ReleasedVersion.where(uuid: uuid).single_record
end
find_currently_supported_versions_for_environment(environment, pacticipant_name: nil, pacticipant_version_number: nil) click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 30
def self.find_currently_supported_versions_for_environment(environment, pacticipant_name: nil, pacticipant_version_number: nil)
  query = ReleasedVersion
    .currently_supported
    .for_environment(environment)
  query = query.for_pacticipant_name(pacticipant_name) if pacticipant_name
  query = query.for_pacticipant_version_number(pacticipant_version_number) if pacticipant_version_number
  query.all
end
find_currently_supported_versions_for_pacticipant(pacticipant) click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 49
def self.find_currently_supported_versions_for_pacticipant(pacticipant)
  scope_for(ReleasedVersion)
    .currently_supported
    .where(pacticipant_id: pacticipant.id)
    .eager(:version)
    .eager(:environment)
    .order(:created_at, :id)
    .all
end
find_released_version_for_version_and_environment(version, environment) click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 39
def self.find_released_version_for_version_and_environment(version, environment)
  ReleasedVersion
    .for_version_and_environment(version, environment)
    .single_record
end
next_uuid() click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 9
def self.next_uuid
  SecureRandom.uuid
end
record_version_support_ended(released_version) click to toggle source
# File lib/pact_broker/deployments/released_version_service.rb, line 45
def self.record_version_support_ended(released_version)
  released_version.record_support_ended
end