class Pactflow::Client::ProviderContracts::Publish
Constants
- PUBLISH_RELATION
Attributes
branch_name[R]
build_url[R]
contract[R]
provider_name[R]
provider_version_number[R]
verification_results[R]
Public Class Methods
new(params, options, pact_broker_client_options)
click to toggle source
Calls superclass method
PactBroker::Client::BaseCommand::new
# File lib/pactflow/client/provider_contracts/publish.rb, line 14 def initialize(params, options, pact_broker_client_options) super @provider_name = params[:provider_name] @provider_version_number = params[:provider_version_number] @branch_name = params[:branch_name] @tags = params[:tags] || [] @build_url = params[:build_url] @contract = params[:contract] @verification_results = params[:verification_results] end
Private Instance Methods
contract_params()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 46 def contract_params verification_results_params = { success: verification_results[:success], content: verification_results[:content] ? encode_content(verification_results[:content]) : nil, contentType: verification_results[:content_type], format: verification_results[:format], verifier: verification_results[:verifier], verifierVersion: verification_results[:verifier_version] }.compact contract_params = { content: encode_content(contract[:content]), specification: contract[:specification], contentType: contract[:content_type] }.compact if verification_results_params.any? contract_params[:selfVerificationResults] = verification_results_params end { pacticipantVersionNumber: provider_version_number, tags: tags, branch: branch_name, buildUrl: build_url, contract: contract_params } end
disabled?()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 38 def disabled? ENV.fetch("PACTFLOW_FEATURES", "").include?("publish_provider_contracts_using_old_api") end
do_call()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 29 def do_call if !disabled? && index_resource.assert_success!.can?(PUBLISH_RELATION) publish_provider_contracts PactBroker::Client::CommandResult.new(success?, message) else PublishTheOldWay.call(params, options, pact_broker_client_options) end end
encode_content(oas)
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 75 def encode_content oas Base64.strict_encode64(oas) end
message()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 79 def message if options[:output] == "json" @response_entity.response.raw_body else text_message end end
publish_provider_contracts()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 42 def publish_provider_contracts @response_entity = index_resource._link(PUBLISH_RELATION).expand(provider: provider_name).post!(contract_params, { "Accept" => "application/hal+json,application/problem+json" }) end
success?()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 87 def success? @response_entity.success? end
text_message()
click to toggle source
# File lib/pactflow/client/provider_contracts/publish.rb, line 91 def text_message PactBroker::Client::ColorizeNotices.call(@response_entity.notices.collect{ |n| OpenStruct.new(n) } ) end