Class: PactBroker::Pacts::PactParams

Inherits:
Hash
  • Object
show all
Defined in:
lib/pact_broker/pacts/pact_params.rb

Defined Under Namespace

Classes: PacticipantName

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ PactParams

Returns a new instance of PactParams.



9
10
11
# File 'lib/pact_broker/pacts/pact_params.rb', line 9

def initialize attributes
  merge!(attributes)
end

Class Method Details

.from_request(request, path_info) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/pact_broker/pacts/pact_params.rb', line 13

def self.from_request request, path_info
  json_content = request.body.to_s
  parsed_content = begin
    JSON.parse(json_content, PACT_PARSING_OPTIONS)
  rescue
    {}
  end

  consumer_name_in_pact = parsed_content.is_a?(Hash) ? parsed_content.fetch('consumer',{})['name'] : nil
  provider_name_in_pact = parsed_content.is_a?(Hash) ? parsed_content.fetch('provider',{})['name'] : nil

  new(
    consumer_name: path_info.fetch(:consumer_name),
    provider_name: path_info.fetch(:provider_name),
    consumer_version_number: path_info.fetch(:consumer_version_number),
    consumer_name_in_pact: consumer_name_in_pact,
    provider_name_in_pact: provider_name_in_pact,
    json_content: json_content
  )
end

Instance Method Details

#consumerObject



62
63
64
# File 'lib/pact_broker/pacts/pact_params.rb', line 62

def consumer
  PacticipantName.new(consumer_name, consumer_name_in_pact, 'consumer')
end

#consumer_nameObject



38
39
40
# File 'lib/pact_broker/pacts/pact_params.rb', line 38

def consumer_name
  self[:consumer_name]
end

#consumer_name_in_pactObject



54
55
56
# File 'lib/pact_broker/pacts/pact_params.rb', line 54

def consumer_name_in_pact
  self[:consumer_name_in_pact]
end

#consumer_version_numberObject



46
47
48
# File 'lib/pact_broker/pacts/pact_params.rb', line 46

def consumer_version_number
  self[:consumer_version_number]
end

#json_contentObject



50
51
52
# File 'lib/pact_broker/pacts/pact_params.rb', line 50

def json_content
  self[:json_content]
end

#pacticipant_namesObject



34
35
36
# File 'lib/pact_broker/pacts/pact_params.rb', line 34

def pacticipant_names
  [consumer_name, provider_name]
end

#providerObject



66
67
68
# File 'lib/pact_broker/pacts/pact_params.rb', line 66

def provider
  PacticipantName.new(provider_name, provider_name_in_pact, 'provider')
end

#provider_nameObject



42
43
44
# File 'lib/pact_broker/pacts/pact_params.rb', line 42

def provider_name
  self[:provider_name]
end

#provider_name_in_pactObject



58
59
60
# File 'lib/pact_broker/pacts/pact_params.rb', line 58

def provider_name_in_pact
  self[:provider_name_in_pact]
end