Sha256: 6bd3449a9cc01afe2073dc36935d9a1e15c4ae3a4d6aeaa3839ee37fe2df1a34

Contents?: true

Size: 1.26 KB

Versions: 32

Compression:

Stored size: 1.26 KB

Contents

require 'pact/mock_service/request_handlers/base_administration_request_handler'
require 'pact/consumer_contract/consumer_contract_writer'

module Pact
  module MockService
    module RequestHandlers
      class PactPost < BaseAdministrationRequestHandler

        attr_accessor :consumer_contract, :verified_interactions, :default_options

        def initialize name, logger, session
          super name, logger
          @verified_interactions = session.verified_interactions
          @default_options = {}
          @default_options.merge!(session.consumer_contract_details)
        end

        def request_path
          '/pact'
        end

        def request_method
          'POST'
        end

        def respond env
          consumer_contract_details = JSON.parse(env['rack.input'].string, symbolize_names: true)
          logger.info "Writing pact with details #{consumer_contract_details}"
          consumer_contract_params = default_options.merge(consumer_contract_details.merge(interactions: verified_interactions))
          consumer_contract_writer = ConsumerContractWriter.new(consumer_contract_params, logger)
          json = consumer_contract_writer.write

          [200, {'Content-Type' =>'application/json'}, [json]]
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
pact-mock_service-2.2.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-2.1.1.pre.alpha.2 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-2.1.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-2.0.1 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-2.0.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-1.2.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-1.1.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-1.0.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.12.1 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.12.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.11.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.10.2 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.10.1 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.10.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.9.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.8.2 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.8.1 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.8.0 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.7.2 lib/pact/mock_service/request_handlers/pact_post.rb
pact-mock_service-0.7.1 lib/pact/mock_service/request_handlers/pact_post.rb