class PactBroker::Api::Resources::ProviderPactsForVerification
Public Instance Methods
allowed_methods()
click to toggle source
TODO drop support for GET in next major version. GET was only used by the very first Ruby Pact
clients that supported the ‘pacts for verification’ feature, until it became clear that the parameters for the request were going to get nested and complex, at which point the POST was added.
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 22 def allowed_methods ["GET", "POST", "OPTIONS"] end
content_types_provided()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 14 def content_types_provided [["application/hal+json", :to_json]] end
malformed_request?()
click to toggle source
Calls superclass method
PactBroker::Api::Resources::BaseResource#malformed_request?
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 26 def malformed_request? super || ((request.get? || (request.post? && content_type_json?)) && validation_errors_for_schema?(schema, query)) end
process_post()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 30 def process_post if content_type_json? response.body = to_json true else 415 end end
read_methods()
click to toggle source
For this endoint, the POST is a “read” action (used for Pactflow)
Calls superclass method
PactBroker::Api::Resources::Authorization#read_methods
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 40 def read_methods super + %w{POST} end
Private Instance Methods
log_request()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 96 def log_request logger.info "Fetching pacts for verification by #{provider_name}", provider_name: provider_name, params: query end
nested_query()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 100 def nested_query @nested_query ||= Rack::Utils.parse_nested_query(request.uri.query) end
pacts()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 46 def pacts @pacts ||= pact_service.find_for_verification( provider_name, parsed_query_params.provider_version_branch, parsed_query_params.provider_version_tags, parsed_query_params.consumer_version_selectors, { include_wip_pacts_since: parsed_query_params.include_wip_pacts_since, include_pending_status: parsed_query_params.include_pending_status } ) end
parsed_query_params()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 82 def parsed_query_params @parsed_query_params ||= decorator_class(:pacts_for_verification_query_decorator).new(OpenStruct.new).from_hash(query) end
query()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 86 def query @query ||= begin if request.get? nested_query elsif request.post? params(symbolize_names: false, default: {}) end end end
resource_title()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 59 def resource_title "Pacts to be verified by provider #{provider_name}" end
schema()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 74 def schema if request.get? PactBroker::Api::Contracts::PactsForVerificationQueryStringSchema elsif request.post? PactBroker::Api::Contracts::PactsForVerificationJSONQuerySchema end end
to_json()
click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 63 def to_json log_request decorator_class(:verifiable_pacts_decorator).new(pacts).to_json( **decorator_options( include_pending_status: parsed_query_params.include_pending_status, title: "Pacts to be verified by provider #{provider_name}", deprecated: request.get? ) ) end