class PactBroker::Api::Decorators::PactsForVerificationQueryDecorator
Public Instance Methods
Source
# File lib/pact_broker/api/decorators/pacts_for_verification_query_decorator.rb, line 58 def from_hash(hash) # This handles both the snakecase keys from the GET query and the camelcase JSON POST body result = super(hash&.snakecase_keys) result.consumer_version_selectors = split_out_deployed_or_released_selectors(result.consumer_version_selectors) if result.provider_version_branch result.consumer_version_selectors = set_branch_for_matching_branch_selectors(result.consumer_version_selectors, result.provider_version_branch) end if result.consumer_version_selectors && !result.consumer_version_selectors.is_a?(PactBroker::Pacts::Selectors) result.consumer_version_selectors = PactBroker::Pacts::Selectors.new(result.consumer_version_selectors) end result end
Calls superclass method
Private Instance Methods
Source
# File lib/pact_broker/api/decorators/pacts_for_verification_query_decorator.rb, line 75 def set_branch_for_matching_branch_selectors(consumer_version_selectors, provider_version_branch) consumer_version_selectors.collect do | consumer_version_selector | if consumer_version_selector[:matching_branch] consumer_version_selector[:branch] = provider_version_branch consumer_version_selector else consumer_version_selector end end end
Source
# File lib/pact_broker/api/decorators/pacts_for_verification_query_decorator.rb, line 86 def split_out_deployed_or_released_selectors(consumer_version_selectors) consumer_version_selectors.flat_map do | selector | if selector.currently_deployed && selector.currently_supported [ PactBroker::Pacts::Selector.new(selector.to_hash.without(:currently_supported)), PactBroker::Pacts::Selector.new(selector.to_hash.without(:currently_deployed)) ] else [selector] end end end