Sha256: 807459565a7f51511eedbacf523f2ac6a40e2300a12cfe9c0b70ea9b665cac21

Contents?: true

Size: 1.39 KB

Versions: 12

Compression:

Stored size: 1.39 KB

Contents

require 'pact_broker/client/base_command'

module PactBroker
  module Client
    module Pacticipants2
      class Create < PactBroker::Client::BaseCommand

        private

        attr_reader :action, :response_entity

        def do_call
          pacticipant_entity = index_resource._link('pb:pacticipant').expand('pacticipant' => params[:name]).get

          response_entity = if pacticipant_entity.does_not_exist?
            @action = "created"
            index_resource._link!('pb:pacticipants').post!(pacticipant_resource_params)
          elsif pacticipant_entity.success?
            @action = "updated"
            pacticipant_entity._link!('self').patch!(pacticipant_resource_params, { "Content-Type" => "application/json" })
          else
            pacticipant_entity.assert_success!
          end

          response_entity.assert_success!
          PactBroker::Client::CommandResult.new(true, result_message)
        end

        def result_message
          if json_output?
            response_entity.response.raw_body
          else
            green(message = "Pacticipant \"#{params[:name]}\" #{action} in #{pact_broker_name}")
          end
        end

        def pacticipant_resource_params
          {
            name: params[:name],
            repositoryUrl: params[:repository_url],
            displayName: params[:display_name]
          }.compact
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
pact_broker-client-1.53.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.52.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.51.2 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.51.1 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.51.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.50.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.49.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.48.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.47.1 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.47.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.46.0 lib/pact_broker/client/pacticipants/create.rb
pact_broker-client-1.45.0 lib/pact_broker/client/pacticipants/create.rb