Sha256: ca0f17eddfe74f8b39ab3e5e9147fa3d787e8c37160f4fc79266b225fd9ce309
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
require 'pact/consumer_contract' require_relative 'base_client' module PactBroker module Client class Pacts < BaseClient def publish options consumer_version = options[:consumer_version] pact_string = options[:pact] consumer_contract = ::Pact::ConsumerContract.from_json pact_string url = save_consumer_contract_url consumer_contract, consumer_version response = self.class.put(url, body: pact_string, headers: default_put_headers) handle_response(response) do true end end def last options url = find_last_consumer_contract_url options query = options[:tag] ? {tag: options[:tag]} : {} response = self.class.get(url, headers: default_get_headers, query: query) handle_response(response) do response.body end end private def find_last_consumer_contract_url options consumer_name = encode_param(options[:consumer]) provider_name = encode_param(options[:provider]) "/pacticipant/#{consumer_name}/versions/last/pacts/#{provider_name}" end def save_consumer_contract_url consumer_contract, consumer_version consumer_name = encode_param(consumer_contract.consumer.name) provider_name = encode_param(consumer_contract.provider.name) version = encode_param(consumer_version) "/pacticipant/#{consumer_name}/versions/#{version}/pacts/#{provider_name}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-client-0.0.1 | lib/pact_broker/client/pacts.rb |