Sha256: e698252116ed026b9059dc1274eb9a9fddfae96746eb3b3bd4cce19742d39d90
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
require_relative 'base_client' module PactBroker module Client class Matrix < BaseClient def get selectors query = {selectors: convert_selector_hashes_to_params(selectors)} response = self.class.get("/matrix", query: query, headers: default_get_headers) $stdout.puts("DEBUG: Response headers #{response.headers}") if verbose? $stdout.puts("DEBUG: Response body #{response}") if verbose? response = handle_response(response) do JSON.parse(response.body, symbolize_names: true) end end def handle_response response if response.success? yield elsif response.code == 401 raise Error.new("Authentication failed") elsif response.code == 404 raise Error.new("Matrix resource not found at #{base_url}/matrix. Please upgrade your broker to the latest version.") else error_message = nil begin error_message = JSON.parse(response.body)['errors'].join("\n") rescue raise Error.new(response.body) end raise Error.new(error_message) end end def convert_selector_hashes_to_params(selectors) selectors.collect{ |selector| "#{selector[:name]}/version/#{selector[:version]}" } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-client-1.8.0 | lib/pact_broker/client/matrix.rb |
pact_broker-client-1.7.0 | lib/pact_broker/client/matrix.rb |