class Pact::PactBroker::FetchPactURIsForVerification
Constants
- EMBEDDED
- HREF
- LINKS
- PACTS
- PACTS_FOR_VERIFICATION_RELATION
- PACTS_FOR_VERIFICATION_RELATION_BETA
- SELF
Attributes
broker_base_url[R]
consumer_version_selectors[R]
http_client[R]
http_client_options[R]
options[R]
provider[R]
provider_version_branch[R]
Public Class Methods
call(provider, consumer_version_selectors, provider_version_branch, provider_version_tags, broker_base_url, http_client_options, options = {})
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 34 def self.call(provider, consumer_version_selectors, provider_version_branch, provider_version_tags, broker_base_url, http_client_options, options = {}) new(provider, consumer_version_selectors, provider_version_branch, provider_version_tags, broker_base_url, http_client_options, options).call end
new(provider, consumer_version_selectors, provider_version_branch, provider_version_tags, broker_base_url, http_client_options, options = {})
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 23 def initialize(provider, consumer_version_selectors, provider_version_branch, provider_version_tags, broker_base_url, http_client_options, options = {}) @provider = provider @consumer_version_selectors = consumer_version_selectors || [] @provider_version_branch = provider_version_branch @provider_version_tags = [*provider_version_tags] @http_client_options = http_client_options @broker_base_url = broker_base_url @http_client = Pact::Hal::HttpClient.new(http_client_options) @options = options end
Public Instance Methods
call()
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 38 def call if index.can?(PACTS_FOR_VERIFICATION_RELATION) || index.can?(PACTS_FOR_VERIFICATION_RELATION_BETA) log_message pacts_for_verification else old_selectors = consumer_version_selectors.collect do | selector | { name: selector[:tag], all: !selector[:latest], fallback: selector[:fallbackTag]} end # Fall back to old method of fetching pacts FetchPacts.call(provider, old_selectors, broker_base_url, http_client_options) end end
Private Instance Methods
extract_notices(pact)
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 85 def extract_notices(pact) Notices.new((pact["verificationProperties"]["notices"] || []).collect{ |notice| symbolize_keys(notice) }) end
index()
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 53 def index @index_entity ||= Pact::Hal::Link.new({ "href" => broker_base_url }, http_client).get.assert_success! end
log_message()
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 93 def log_message Pact.configuration.output_stream.puts "INFO: #{pact_selection_description(provider, consumer_version_selectors, options, broker_base_url)}" end
pacts_for_verification()
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 57 def pacts_for_verification pacts_for_verification_entity.response.body[EMBEDDED][PACTS].collect do | pact | metadata = { pending: pact["verificationProperties"]["pending"], notices: extract_notices(pact), short_description: pact["shortDescription"] } Pact::Provider::PactURI.new(pact[LINKS][SELF][HREF], http_client_options, metadata) end end
pacts_for_verification_entity()
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 68 def pacts_for_verification_entity index ._link(PACTS_FOR_VERIFICATION_RELATION, PACTS_FOR_VERIFICATION_RELATION_BETA) .expand(provider: provider) .post!(query) end
query()
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 75 def query q = {} q["includePendingStatus"] = true if options[:include_pending_status] q["consumerVersionSelectors"] = consumer_version_selectors if consumer_version_selectors.any? q["providerVersionTags"] = provider_version_tags if provider_version_tags.any? q["providerVersionBranch"] = provider_version_branch if provider_version_branch q["includeWipPactsSince"] = options[:include_wip_pacts_since] if options[:include_wip_pacts_since] q end
symbolize_keys(hash)
click to toggle source
# File lib/pact/pact_broker/fetch_pact_uris_for_verification.rb, line 89 def symbolize_keys(hash) hash.each_with_object({}){ |(k,v), h| h[k.to_sym] = v } end