Sha256: e5ee4fe1ffcadebd8ed96145d6ed1bf1ebe32ffb808590db32a0ad0fcad349e4

Contents?: true

Size: 1.72 KB

Versions: 23

Compression:

Stored size: 1.72 KB

Contents

require 'pact_broker/client/pact_broker_client'
require 'pact_broker/client/versions/formatter'

module PactBroker
  module Client
    class Versions
      class Describe

        class Result
          attr_reader :success, :message

          def initialize success, message = nil
            @success = success
            @message = message
          end
        end

        def self.call params, options, pact_broker_base_url, pact_broker_client_options
          new(params, options, pact_broker_base_url, pact_broker_client_options).call
        end

        def initialize params, options, pact_broker_base_url, pact_broker_client_options
          @params = params
          @options = options
          @pact_broker_base_url = pact_broker_base_url
          @pact_broker_client_options = pact_broker_client_options
        end

        def call
          version_hash = if params[:version]
            versions_client.find(params)
          else
            pact_broker_client.pacticipants.versions.latest(params)
          end
          if version_hash
            Result.new(true, format_version(version_hash))
          else
            Result.new(false, "Pacticipant version not found")
          end
        end

        private

        def format_version(version_hash)
          Formatter.call(version_hash, options[:output])
        end

        attr_reader :params, :options, :pact_broker_base_url, :pact_broker_client_options

        def versions_client
          pact_broker_client.pacticipants.versions
        end

        def pact_broker_client
          @pact_broker_client ||= PactBroker::Client::PactBrokerClient.new(base_url: pact_broker_base_url, client_options: pact_broker_client_options)
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
pact_broker-client-1.28.4 lib/pact_broker/client/versions/describe.rb
pact_broker-client-1.28.3 lib/pact_broker/client/versions/describe.rb
pact_broker-client-1.28.2 lib/pact_broker/client/versions/describe.rb