class PactBroker::Api::Resources::ProviderPactsForVerification

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 14
def allowed_methods
  ["GET", "POST", "OPTIONS"]
end
content_types_accepted() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 18
def content_types_accepted
  [["application/json"]]
end
malformed_request?() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 22
def malformed_request?
  if (errors = query_schema.call(query)).any?
    set_json_validation_error_messages(errors)
    true
  else
    false
  end
end
process_post() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 31
def process_post
  response.body = to_json
  true
end
read_methods() click to toggle source
Calls superclass method
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 36
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 92
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 96
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 42
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 78
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 82
def query
  @query ||= begin
    if request.get?
      nested_query
    elsif request.post?
      params(symbolize_names: false, default: {})
    end
  end
end
query_schema() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 70
def query_schema
  if request.get?
    PactBroker::Api::Contracts::PactsForVerificationQueryStringSchema
  else
    PactBroker::Api::Contracts::PactsForVerificationJSONQuerySchema
  end
end
resource_title() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 55
def resource_title
  "Pacts to be verified by provider #{provider_name}"
end
to_json() click to toggle source
# File lib/pact_broker/api/resources/provider_pacts_for_verification.rb, line 59
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