Class: PactBroker::Api::Resources::ProviderPactsForVerification

Inherits:
ProviderPacts show all
Defined in:
lib/pact_broker/api/resources/provider_pacts_for_verification.rb

Constant Summary

Constants included from Pacts::Metadata

Pacts::Metadata::MAPPINGS

Constants included from Services

Services::SERVICE_FACTORIES

Instance Attribute Summary

Attributes inherited from BaseResource

#user

Instance Method Summary collapse

Methods inherited from ProviderPacts

#policy_name, #resource_exists?

Methods inherited from BaseResource

#any_request_body?, #api_contract_class, #application_context, #base_url, #charsets_provided, #consumer, #consumer_name, #consumer_specified?, #consumer_version_number, #content_type_is_json_but_invalid_json_provided?, #content_type_json?, #database_connector, #decorator_class, #decorator_context, #decorator_options, #encode, #find_pacticipant, #finish_request, #forbidden?, #identifier_from_path, #initialize, #integration, #invalid_json?, #is_authorized?, #known_methods, #malformed_request_for_json_with_schema?, #options, #pact, #pact_params, #pacticipant, #pacticipant_name, #pacticipant_specified?, #pacticipant_version_number, #params, #params_with_string_keys, #patch_can_create?, #provider, #provider_name, #provider_specified?, #put_can_create?, #request_body, #request_body_required?, #resource_url, #ui_base_url, #validation_errors_for_schema?

Methods included from Logging

included, #log_error, #log_with_tag, #measure_info

Methods included from Messages

#message, #pluralize, #validation_message, #validation_message_at_index

Methods included from Contracts::UTF8Validation

#fragment_before_invalid_utf_8_char

Methods included from ErrorHandlingMethods

#decorator_options_for_error, #error_response_body, #error_response_content_type, #handle_exception, #log_and_report_error, #problem_json_error_content_type?, #set_json_error_message, #set_json_validation_error_messages, #validation_errors_decorator_class, #validation_errors_response_body

Methods included from Authorization

#action, #create_methods, #delete_methods, #update_methods

Methods included from Authentication

#authenticated?

Methods included from PactBrokerUrls

#append_query_if_present, #badge_url_for_latest_pact, #branch_url, #branch_version_url, #branch_versions_url, #consumer_webhooks_url, #currently_deployed_versions_for_environment_url, #currently_supported_versions_for_environment_url, #dashboard_url_for_integration, #decode_pact_metadata, #deployed_version_url, #deployed_versions_for_version_and_environment_url, #encode_metadata, #environment_url, #environments_url, #group_url, #hal_browser_url, #integration_url, #label_url, #labels_url, #latest_pact_url, #latest_pacts_url, #latest_tagged_pact_url, #latest_untagged_pact_url, #latest_verification_for_pact_url, #latest_verifications_for_consumer_version_url, #latest_version_for_branch_url, #latest_version_url, #matrix_badge_url_for_selectors, #matrix_for_pact_url, #matrix_for_pacticipant_version_url, #matrix_url, #matrix_url_from_params, #new_verification_url, #pact_triggered_webhooks_url, #pact_url, #pact_url_from_params, #pact_version_url, #pact_version_url_with_metadata, #pact_version_url_with_webhook_metadata, #pact_version_with_consumer_version_metadata_url, #pact_versions_for_branch_url, #pact_versions_url, #pacticipant_branches_url, #pacticipant_url, #pacticipant_url_from_params, #pacticipants_url, #pacticipants_with_label_url, #previous_distinct_diff_url, #previous_distinct_pact_version_url, #provider_webhooks_url, #record_undeployment_url, #released_version_url, #released_versions_for_version_and_environment_url, #tag_url, #tagged_pact_versions_url, #tags_url, #templated_branch_version_url_for_pacticipant, #templated_can_i_deploy_badge_url, #templated_can_i_deploy_branch_to_environment_badge_url, #templated_can_i_deploy_url, #templated_diff_url, #templated_label_url_for_pacticipant, #templated_tag_url_for_pacticipant, #templated_version_url_for_pacticipant, #triggered_webhook_logs_url, #url_encode, #verification_publication_url, #verification_triggered_webhooks_url, #verification_url, #verification_url_from_params, #version_url, #version_url_from_params, #versions_url, #webhook_execution_url, #webhook_url, #webhooks_for_consumer_and_provider_url, #webhooks_for_pact_url, #webhooks_status_url, #webhooks_url

Methods included from Pacts::Metadata

#build_metadata_for_consumer_version_number, #build_metadata_for_latest_pact, #build_metadata_for_pact_for_verification, #build_metadata_for_webhook_triggered_by_pact_publication, #parse_hash, #parse_metadata, #parse_object

Methods included from Services

#badge_service, #branch_service, #certificate_service, #contract_service, #deployed_version_service, #environment_service, #get_service, #group_service, #index_service, #integration_service, #label_service, #matrix_service, #metrics_service, #pact_service, #pacticipant_service, #register_default_services, #register_service, #released_version_service, #tag_service, #verification_service, #version_service, #webhook_service, #webhook_trigger_service

Constructor Details

This class inherits a constructor from PactBroker::Api::Resources::BaseResource

Instance Method Details

#allowed_methodsObject

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.



22
23
24
# File 'lib/pact_broker/api/resources/provider_pacts_for_verification.rb', line 22

def allowed_methods
  ["GET", "POST", "OPTIONS"]
end

#content_types_providedObject



14
15
16
# 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?Boolean

Returns:

  • (Boolean)


26
27
28
# 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_postObject



30
31
32
33
34
35
36
37
# 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_methodsObject

For this endoint, the POST is a “read” action (used for Pactflow)



40
41
42
# File 'lib/pact_broker/api/resources/provider_pacts_for_verification.rb', line 40

def read_methods
  super + %w{POST}
end