class PactBroker::Api::Resources::ReleasedVersionsForVersionAndEnvironment

Attributes

released_version[R]

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 16
def allowed_methods
  ["GET", "POST", "OPTIONS"]
end
content_types_accepted() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 8
def content_types_accepted
  [["application/json", :from_json]]
end
content_types_provided() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 12
def content_types_provided
  [["application/hal+json", :to_json]]
end
create_path() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 28
def create_path
  released_version_url(existing_released_version || OpenStruct.new(uuid: next_released_version_uuid), base_url)
end
finish_request() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 51
def finish_request
  if request.post? && existing_released_version
    response.code = 200
  end
  super
end
from_json() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 32
def from_json
  existing_released_version # make sure we have this before we update the database
  @released_version = released_version_service.create_or_update(next_released_version_uuid, version, environment)
  response.body = decorator_class(:released_version_decorator).new(released_version).to_json(**decorator_options)
  true
end
policy_name() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 43
def policy_name
  :'versions::released_versions'
end
policy_record() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 47
def policy_record
  environment
end
post_is_create?() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 24
def post_is_create?
  true
end
resource_exists?() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 20
def resource_exists?
  !!version && !!environment
end
to_json() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 39
def to_json
  decorator_class(:released_versions_decorator).new(released_versions).to_json(**decorator_options(title: title))
end

Private Instance Methods

environment() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 74
def environment
  @environment ||= environment_service.find(environment_uuid)
end
environment_uuid() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 88
def environment_uuid
  identifier_from_path[:environment_uuid]
end
existing_released_version() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 62
def existing_released_version
  if defined?(@existing_released_version)
    @existing_released_version
  else
    @existing_released_version = version && environment && released_version_service.find_released_version_for_version_and_environment(version, environment)
  end
end
next_released_version_uuid() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 92
def next_released_version_uuid
  @released_version_uuid ||= released_version_service.next_uuid
end
released_versions() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 78
def released_versions
  @released_versions ||= begin
    if existing_released_version
      [existing_released_version]
    else
      []
    end
  end
end
title() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 96
def title
  "Released versions for #{pacticipant.display_name} version #{pacticipant_version_number} in #{environment.display_name}"
end
version() click to toggle source
# File lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb, line 70
def version
  @version ||= version_service.find_by_pacticipant_name_and_number(identifier_from_path)
end