Class: PactBroker::Api::Resources::PacticipantBranches

Inherits:
BaseResource
  • Object
show all
Includes:
AfterReply, FilterMethods, PaginationMethods
Defined in:
lib/pact_broker/api/resources/pacticipant_branches.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 included from AfterReply

#after_reply

Methods included from FilterMethods

#filter_options

Methods included from PaginationMethods

#default_pagination_options, #pagination_options

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?, #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, #schema, #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, #read_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



19
20
21
# File 'lib/pact_broker/api/resources/pacticipant_branches.rb', line 19

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

#content_types_providedObject



15
16
17
# File 'lib/pact_broker/api/resources/pacticipant_branches.rb', line 15

def content_types_provided
  [["application/hal+json", :to_json]]
end

#delete_resourceObject

Allows bulk deletion of pacticipant branches, keeping the specified branches and the main branch. Deletes the branches asyncronously, after the response has been sent, for performance reasons.



37
38
39
40
41
42
43
44
# File 'lib/pact_broker/api/resources/pacticipant_branches.rb', line 37

def delete_resource
  after_reply do
    branch_service.delete_branches_for_pacticipant(pacticipant, exclude: exclude)
  end
  notices = branch_service.branch_deletion_notices(pacticipant, exclude: exclude)
  response.body = decorator_class(:notices_decorator).new(notices).to_json(**decorator_options)
  202
end

#policy_nameObject



31
32
33
# File 'lib/pact_broker/api/resources/pacticipant_branches.rb', line 31

def policy_name
  :'versions::branches'
end

#resource_exists?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/pact_broker/api/resources/pacticipant_branches.rb', line 23

def resource_exists?
  !!pacticipant
end

#to_jsonObject



27
28
29
# File 'lib/pact_broker/api/resources/pacticipant_branches.rb', line 27

def to_json
  decorator_class(:pacticipant_branches_decorator).new(branches).to_json(**decorator_options(pacticipant: pacticipant))
end